![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Aleksei |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 23 Регистрация: 3.9.2014 Пользователь №: 4219 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
задача открыть лог файл и найти в нём строку, выдать сообщение. Так как лог файл обновляется постоянно, то я буду по таймеру запускать поиск. Файл можно открыть только для чтения.
Товарищ FireBlack подсказал: "читаете его кусками и ищете искомую запись. Если, как Вы говорите, это большой лог файл (который только дополняется), то имеет смысл запоминать последнюю позицию и при следующем чтении файла начинать с нее." Но как это сделать я так и не понял, как работать с qt документацией? примеров не нашёл. Читаю книгу ООП Лафоре. так как не знаю как пользоваться этой подсказкой, пока придумал такую реализацию: - открою файл для чтения, сделаю поиск строки, выдаст сообщение если найдёт, посчитаю кол-во строк в файле, запомню в переменной номер последней строки, закрою файл. - по таймеру открою опять файл, из переменной возьму последнюю строку +1 и с этой строки буду опять искать, что бы не искать заново по всему файлу. ещё можно сделать проверку перед запуском поиска изменился ли файл, либо по его размеру, либо опять же по кол-ву строк определять. Если файл не изменился выдать предупреждение, что возможно повисла программа которая пишет в лог файл. смущает что лог файл большой и очень много строк будет, наверно мой способ будет медленный. подскажите как сделать правильней. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 10.7.2025, 14:44 |