2016-02-13 2 views
3

Я работал над определенной частью кода, которая одновременно считывает из двух файлов и сравнивает данные. Что-то в линиях:Julia двойная итерация по строкам в файле

for l1 in eachline (firstfile) 
    for l2 in eachline (secondfile) 

     if l1==l2 
     println("match!"); 
     end 
    end 
end 

Но что происходит следующая> итерация продолжается только для первой строки первого файла и всех строк во втором файле, но затем останавливается. Поэтому вместо того, чтобы использовать вторую строку первого файла в следующем цикле, программа останавливается без ошибок. Как это делается в Джулии, если не со следующим фрагментом?

спасибо.

ответ

3

Каждый файл имеет указатель на текущее место для чтения. После полного чтения файла вам необходимо сбросить место для чтения в начало файла, чтобы перечитать его. Это то, что добавочно seek строки в нижеследующем коде:

for l1 in eachline(firstfile) 
    for l2 in eachline(secondfile) 
     if l1==l2 
      println("match!"); 
     end 
    end 
    ### ADD THE FOLLOWING LINE 
    seek(secondfile,0) 
end 
+0

Спасибо! Да, это именно то, что я искал. –

Смежные вопросы