Ruby File IO вопрос;Поддерживать положение чтения файла между выполнением скрипта - PullRequest
0 голосов
/ 24 апреля 2010

У меня есть два файла a.txt и b.txt (впредь a и b).

Мой скрипт перебирает a, выполняет какую-то операцию, и потенциально вставляет строку в b.

В случае, если сценарий останавливается, мне нужно, чтобы он продолжал с того места, где остановился. В приведенном ниже примере:

  1. foo был скопирован в b
  2. бар был скопирован в b
  3. zim был не скопирован в b (не прошел некоторые критерии)
  4. Газ был скопирован в b
  5. Сценарий останавливается (по какой-либо причине)

Когда скрипт запускается снова, как открыть a и начать в строке "dib"?

a.txt

foo
bar
zim
gaz      // <= last successful copy
dib      // <= I want to start here on next script execution
gir

b.txt

foo
bar
gaz      // <= note omission of "zim" above gaz

Примечание:

a.txt - это почти 1 000 000 строк

1 Ответ

3 голосов
/ 24 апреля 2010

Эй, Мацек - вы можете использовать поиск, чтобы найти строку в оригинальном файле. Проверьте IO # seek http://ruby -doc.org / core / classes / IO.html # M002280

...