I have this small program, or something like it as this just bigger:
test.rb
def testing
t = gets
puts t
k = gets
puts k
end
test2.rb
testing
When I run test2.rb it asks for user input. But I want the program to
get this input from a file instead of asking the user. And I do not want
to change the code in test.rb. I can only change the code in test2.rb or
make new files, but I cant change test.rb
I only now how to do this by running the program from the console
ruby test2.rb < input.txt
But that is not what I want. I want to do this inside the program. I do
not want the user to start it in the console like that. I want the user
only to start the program an th program get the input from the file (or
a text string in the program code) it self.
I am new to ruby, and new to this kind of programming, so please don't
kill me if it is a stupid question.
Of course you'd want to set $stdin to the open file.
A bit of care is needed, because if the program is given command-line
arguments, Kernel#gets will read from the files listed on the
command-line (in the same way as ARGF.gets, I believe)
If test.rb really wants to read from stdin, it should do
$stdin.gets
Of course, you already said you couldn't modify test.rb. So perhaps you
need to do ARGV.clear or something like that.
···
On Sat, Jun 6, 2009 at 7:57 AM, Kga Agk<lord_kga@yahoo.no> wrote:
I have testet it om some programms, and it gets most outputs. But thee
is some output to the console i havent managed to catch. Might it be a
non standard output? How do i catch it? Is thee som way to catch
everything that are written to det consol, and not only the standard
output ?
I have testet it om some programms, and it gets most outputs. But thee
is some output to the console i havent managed to catch. Might it be a
non standard output? How do i catch it? Is thee som way to catch
everything that are written to det consol, and not only the standard
output ?
Ops, i asked for input earlier. But now i'm after output. I want to
collect all kind of outputs that the program send to the commandline. I
now how to catch most of it by using somthing simmilar to the
description above, only with $stdout insted. But it dont catch
everything. There is some outputs to the command line it dont catch. I
dont now what kind of output it is, but it is a error message and
printet in red in eclipse
I have testet it om some programms, and it gets most outputs. But thee
is some output to the console i havent managed to catch. Might it be a
non standard output? How do i catch it? Is thee som way to catch
everything that are written to det consol, and not only the standard
output ?
Ops, i asked for input earlier. But now i'm after output. I want to
collect all kind of outputs that the program send to the commandline. I
now how to catch most of it by using somthing simmilar to the
description above, only with $stdout insted. But it dont catch
everything. There is some outputs to the command line it dont catch. I
dont now what kind of output it is, but it is a error message and
printet in red in eclipse
Hehe, i'm a clutterhead. It was just an stderr output.