Hi
I’ve tried the following code on Win XP, Ruby 1.8rc1 and
Mac OS X 10.3, Ruby 1.6.8. From the online documentation I
pretty much copied and tried the following code:
f = File.new(“testfile.txt”)
puts f.gets >> This is line 1
puts f.gets >> This is line 2
f.lineno = 9 >>
puts f.lineno >> 9
puts f.gets >> This is line 3
Although f.lineno updates to 9, it never seems to affect
the line number next read.
Thanks
John
···
Herbalife Independent Distributor http://www.healthiest.co.za
That seems to fit with the ri description of File.lineno=. It sets
lineno but doesn’t seem to seek to that line in the file. I think
what you want could be achieved by:
f.rewind
1.upto(9) { f.readline }
or even extending the File class to add a function that does this
Class File
def seek_line(line)
self.rewind
1.upto(line) { self.readline }
end
end
Cheers,
Jason
···
On Sat, 1 May 2004 00:54:02 +0900, John Baker mrjdoh@mailbox.co.za wrote:
Hi
I’ve tried the following code on Win XP, Ruby 1.8rc1 and
Mac OS X 10.3, Ruby 1.6.8. From the online documentation I
pretty much copied and tried the following code:
f = File.new(“testfile.txt”)
puts f.gets >> This is line 1
puts f.gets >> This is line 2
f.lineno = 9 >>
puts f.lineno >> 9
puts f.gets >> This is line 3
Although f.lineno updates to 9, it never seems to affect
the line number next read.
Thanks
John
Herbalife Independent Distributor http://www.healthiest.co.za
“John Baker” mrjdoh@mailbox.co.za writes:
I’ve tried the following code on Win XP, Ruby 1.8rc1 and
Mac OS X 10.3, Ruby 1.6.8. From the online documentation I
pretty much copied and tried the following code:
f = File.new(“testfile.txt”)
puts f.gets >> This is line 1
puts f.gets >> This is line 2
f.lineno = 9 >>
puts f.lineno >> 9
puts f.gets >> This is line 3
Although f.lineno updates to 9, it never seems to affect
the line number next read.
IO#lineno= just sets the counter, not the position in the file. This
is demonstrated in the ri example:
------------------------------------------------------------- IO#lineno=
ios.lineno = integer => integer
···
Manually sets the current line number to the given value. +$.+ is
updated only on the next read.
f = File.new("testfile")
f.gets #=> "This is line one\n"
$. #=> 1
f.lineno = 1000
f.lineno #=> 1000
$. # lineno of last read #=> 1
f.gets #=> "This is line two\n"
$. # lineno of last read #=> 1001
Hi
I’ve tried the following code on Win XP, Ruby 1.8rc1 and
Mac OS X 10.3, Ruby 1.6.8. From the online documentation I
pretty much copied and tried the following code:
f = File.new(“testfile.txt”)
puts f.gets >> This is line 1
puts f.gets >> This is line 2
f.lineno = 9 >>
puts f.lineno >> 9
puts f.gets >> This is line 3
Although f.lineno updates to 9, it never seems to affect
the line number next read.
if the file is small:
line = IO.readlines ‘testfile.txt’
p line[9]
···
On Sat, 1 May 2004, John Baker wrote:
Thanks
John
Herbalife Independent Distributor http://www.healthiest.co.za
–
EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
PHONE :: 303.497.6469
ADDRESS :: E/GC2 325 Broadway, Boulder, CO 80305-3328
URL :: Solar-Terrestrial Physics Data | NCEI
TRY :: for l in ruby perl;do $l -e “print "\x3a\x2d\x29\x0a"”;done
===============================================================================