Запомнить позицию чтения QFile

Есть сторонний лог-файл. При запуске программы необходимо считать с него новую информацию, появившуюся за время, пока программа не работала. Далее в оперативном режиме работаем с появляющимися данными. Перед закрытием необходимо запомнить место, на котором остановились (текущий конец файла по факту), чтобы во время следующего запуска с него начать чтение появившийся данных.
С последнем пунктом проблемы. Не нашла никакой информации по поводу того, как запомнить текущее место чтения даже в пределах одной сессии.
С файлом работаю с помощью QFile. Знаю, что сохранять данные между сессиями можно с помощью QSettings, однако не уверена, что в данном случае это поможет.


Ответы (1 шт):

Автор решения: neon1ks

Сохранять время последней считанной строчки лог файла. При повторном считывании искать данное время. Если нету времени у строчек, то лог файл какой-то неправильный.

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

Могут быть нюансы со строчками содержащими одинаковое время. Этот момент нужно проработать. Например, можно сохранить текст строчки.

→ Ссылка