Unable to write to file... (example from "pickaxe book", sec

Following the example from “pickaxe book”, second edition, p128

#!/usr/bin/ruby
File.open(“testfile”, “r”) do |file|
while line = file.gets
puts line
end
end

produces
copy.rb:2:in `initialize’: No such file or directory - testfile
(Errno::ENOENT)
from copy.rb:2

On Thursday 19 January 2006 11:49, John M. wrote:

copy.rb:2:in `initialize’: No such file or directory - testfile
(Errno::ENOENT) from copy.rb:2

The problem is clear. You are trying to read a file which does not
exist. So,
to solve the `problem’, you create a file named testfile, put some text
in
it, and there you go,

John M. wrote:

copy.rb:2:in `initialize’: No such file or directory - testfile (Errno::ENOENT)
from copy.rb:2

John, you need the file named “testfile” to exist before you can run
that code. It can’t open a file
if it doesn’t exist!

Zach

Thanks! The light shines. So how can i -write- to a file using the code
below as an example?

On Thu, 19 Jan 2006 19:56:55 +0900

John M. wrote:

Thanks! The light shines. So how can i -write- to a file using the code
below as an example?

Open a file for writing

File.open( “infile”, “r” ) | in |
File.open( “outfile”, “w” ) | out |
while line = in.gets
out.print line
end
end
end

See the docs for IO which explain all the mode flags (“r”, “w”, “a”,
etc.).

Mike F. wrote:

John M. wrote:

Thanks! The light shines. So how can i -write- to a file using the code
below as an example?

Open a file for writing

File.open( “infile”, “r” ) | in |
File.open( “outfile”, “w” ) | out |
while line = in.gets
out.print line
end
end
end

See the docs for IO which explain all the mode flags (“r”, “w”, “a”,
etc.).

Do you think this script work?

Li

Li Chen wrote:

Mike F. wrote:

John M. wrote:

Thanks! The light shines. So how can i -write- to a file using the code
below as an example?

Open a file for writing

File.open( “infile”, “r” ) | in |
File.open( “outfile”, “w” ) | out |
while line = in.gets
out.print line
end
end
end

See the docs for IO which explain all the mode flags (“r”, “w”, “a”,
etc.).

Do you think this script work?

As is no (I blame lack of caffeine and/or sleep); but with “do” inserted
in the right two places and the reserved word “in” replaced with
something that’s not a reserved word ( say “inf” ) it works just fine.

One should take all example code posted in haste to mailing lists with a
grain of salt.

On 03/11/06, Li Chen [email protected] wrote:

end

Do you think this script work?

It fails because “in” is a reserved word in Ruby and cannot be used as
a variable name. Try changing the two instances of “in” to “inp” and
it will work.