2014-02-14 2 views
0

Я хотел бы сканировать каждую строку в текстовом файле, ЗА ИСКЛЮЧЕНИЕМ первой строки.чтение строк текстового файла в ruby ​​

я обычно делают:

while line = file.gets do 
... 
...etc 
end 

но line = file.gets читает каждую строчку, начиная с первого.

Как читать со второй строки?

ответ

1

Почему просто не позвонить file.gets раз и отбрасывать результат:

file.gets 
while line = file.gets 
    # code here 
end 
+0

I не понимаете? – user3307307

+0

OH Я вижу, хорошо спасибо – user3307307

0

Вы на самом деле хотите, чтобы избежать чтения первой строки или не делать что-то с ним. Если вы в порядке чтения строки, но вы хотите, чтобы избежать его обработку, то вы можете использовать LINENO игнорировать линию во время обработки следующим

f = File.new "/tmp/xx" 

while line = f.gets do 
    puts line unless f.lineno == 1 
end 
+0

Я хочу, чтобы его вообще не читать – user3307307

+1

Если вы знаете длину первой строки, вы можете использовать File.seek для перемещения указателя к началу строки 2, а затем цикл while. Если вы не знаете длину, вам, вероятно, нужно прочитать (и игнорировать) ее. –

1

Я хотел бы сделать это простым способом:

IO.readlines('filename').drop(1).each do |line| # drop the first array element 
    # do any proc here 
end 
Смежные вопросы