Цитата Apock:
Дабы не обрабатывать старые строки повторно, сделал следующую процедуру:
Прочитал->очистил файл->через время прочитал снова.
Проблема в том, что иногда совпадает момент записи в файл и моей очистки, что вызывает ошибку моей программы. »
|
Не делайте так. Проблема именно в этом.
Цитата Apock:
Как считать информацию из файла начиная с N-строки я не знаю(хотя какой-нибудь метод потокового чтения решил бы много проблем). »
|
Не существует таких способов
в принципе. Чтобы найти N-ную строку, нужно прочитать все предыдущие. Именно поэтому с начала времён такие файлы и именуются
файлами последовательного доступа.
Очищать файл должно генерирующее его приложение — по времени, по размеру, або тупо периодически. Если такового функционала нет — Вы можете попробовать:
если генерирующее приложение не «держит» log-файл постоянно открытым. Ваше приложение должно открывать данный файл для чтения в совместном доступе, читать имеющиеся данные, запоминать номер последней прочитанной строки и закрывать файл. При следующем обращении к файлу Вы должны последовательно прочитать/пропустить строки от начала до сохранённого номера последней ранее прочитанной строки.