Error when reading file from command prompt


#1

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’


#2

Mmcolli00 Mom wrote:

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’

input = gets

input = gets.chomp


#3

On Wed, Apr 22, 2009 at 6:02 PM, Mmcolli00 Mom removed_email_address@domain.invalid
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.


#4

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.


#5

Oops that should be :

puts 'Enter Filename: ’
$stdout.flush
filename = gets.chomp

inputfile = File.new(filename, ‘r’)

:slight_smile:


#6

Alan Claughan wrote:

Oops that should be :

puts 'Enter Filename: ’
$stdout.flush
filename = gets.chomp

inputfile = File.new(filename, ‘r’)

:slight_smile:

thanks!