Ruby - обнаружение конца прочитанного файла - PullRequest
0 голосов
/ 30 декабря 2011

загружаю через форму файл и в контроллере этот файл читаю.Моя проблема заключается в том, что я не знаю, горячий, чтобы определить конец файла (=> когда остановить цикл).Эта часть кода выглядит следующим образом:

dat = params[:data]
while(d = dat.read)
  puts d
  break if d.eof #this doesn't work
end

Результатом этой части является (за исключением ошибки около eof ) бесконечность при цикле.

1 Ответ

3 голосов
/ 30 декабря 2011

С http://ruby -doc.org / core-1.9.3 / IO.html # method-i-read :

Если длина опущена или равна нулю, она читаетдо EOF и преобразования кодирования не применяется.Он возвращает строку, даже если EOF встречается в начале.

Так что я думаю, вам нужно просто сделать dat.read

Редактировать: если вы хотите, чтобы все строки файла были использованы, dat.readlines- это вернет Array из Strings

...