Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Apock:
Дабы не обрабатывать старые строки повторно, сделал следующую процедуру:
Прочитал->очистил файл->через время прочитал снова.
Проблема в том, что иногда совпадает момент записи в файл и моей очистки, что вызывает ошибку моей программы. »
Не делайте так. Проблема именно в этом.

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

Очищать файл должно генерирующее его приложение — по времени, по размеру, або тупо периодически. Если такового функционала нет — Вы можете попробовать:
Цитата Busla:
или переименовывайте »
если генерирующее приложение не «держит» log-файл постоянно открытым. Ваше приложение должно открывать данный файл для чтения в совместном доступе, читать имеющиеся данные, запоминать номер последней прочитанной строки и закрывать файл. При следующем обращении к файлу Вы должны последовательно прочитать/пропустить строки от начала до сохранённого номера последней ранее прочитанной строки.

Отправлено: 17:13, 20-04-2019 | #4