Hi. I have a program that is supposed to get a filename at the command
prompt. It reads in the input ok but doesn’t initialize to the file. I
have more code that takes the file and parses it but I did not paste
that below.
Question: Is there a step that I am missing in f = File.new(myinput)?
Thanks MC
inputFile = print("Enter Filename: ")
$stdout.flush
input = gets
myinput = input.to_s
f = File.new(myinput) <-- in ‘initialize’: Invalid argument - filename
(Errno::EINAL) from crb.rb in ‘new’
On Wed, Apr 22, 2009 at 6:02 PM, Mmcolli00 Mom [email protected]
wrote:
input = gets
Try:
input = gets.chomp
gets is returning the \n at the end of the string.
myinput = input.to_s
f = File.new(myinput) ← in ‘initialize’: Invalid argument - filename
(Errno::EINAL) from crb.rb in ‘new’
Jesus.
Wow you seem to be a little confused her
in line 1 you try to get a inputFile name from a print statement.
You actually get the filename with line 3.
line 4 is unnecessary as gets returns a string anyway.
So you can do :
puts 'Enter Filename: ’
$stdout.flush
filename = gets.chomp
inputfile = File.new(filename, ‘w’)
Alan.
Oops that should be :
puts 'Enter Filename: ’
$stdout.flush
filename = gets.chomp
inputfile = File.new(filename, ‘r’)