Robert Klemme wrote:
> "BearItAll" <spam / rassler.co.uk> schrieb im Newsbeitrag
> news:1107426590.1467.0 / eunomia.uk.clara.net...
> 
>>Hello, I'm new here, also fairly new to ruby, but I already have some
>>very usfull scripts written with it.
>>
>>But a problem I have over and over is that the 'chop' doesn't always
>>work (for me) when dealing with files.
>>
>>An example, the file '/tmp/dirtree' is the result of a class that
>>traverses the directory tree, the lines are written using,
>>
>>f.print "#{filename}\n"
>>(but I've also tried others writing methods)
> 
> 
> "f.puts filename" does the same more efficiently.
> 
> 
>>Then next would be the class to read from that file.
>>
>>DIRTREE='/tmp/dirtree'
>>IO.foreach(DIRTREE) { |@x|
>>         @x.chop
>>         print "Thisdir = #{@x}/*"
>>}
>>
>>The output from print gives,
>>
>>Thisdir = /home/whatever
>>/*
>>
>>So chop hasn't removed the newline.
> 
> 
> You want chop!() because you want to modify @x.  chop() just returns a
> copy of the string with the last char removed.  But even better use
> chomp!(), because chop!() and chop() always remove the last char -
> regardless what it is:
> 
> 
>>>s="abcde\n"
> 
> => "abcde\n"
> 
>>>s.chop!
> 
> => "abcde"
> 
>>>s.chop!
> 
> => "abcd"
> 
>>>s.chop!
> 
> => "abc"
> 
>>>s.chop!
> 
> => "ab"
> 
>>>s.chop!
> 
> => "a"
> 
>>>s.chop!
> 
> => ""
> 
>>>s.chop!
> 
> => nil
> 
> 
>>Do you use a definitive combination of file write and read that will
>>always work, or is there another trick I don't know about yet.
> 
> 
> Kind regards
> 
>     robert
> 

Thankyou, I love you loads.

Strange really how I read that "Returns a new string..." a billion 
times, without actually noticing what it said.

But then I'm the same with tax return forms.

So as a reward you are welcome to join me in a all expenses paid round 
the world holiday on my yaght. it's about 3 foot long and 2 foot wide 
with one oar each. Let me know when your avaiable.