crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Aleksei
  опции профиля:
сообщение 12.2.2015, 23:46
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 3.9.2014
Пользователь №: 4219

Спасибо сказали: 0 раз(а)




Репутация:   0  


задача открыть лог файл и найти в нём строку, выдать сообщение. Так как лог файл обновляется постоянно, то я буду по таймеру запускать поиск. Файл можно открыть только для чтения.
Товарищ FireBlack подсказал: "читаете его кусками и ищете искомую запись. Если, как Вы говорите, это большой лог файл (который только дополняется), то имеет смысл запоминать последнюю позицию и при следующем чтении файла начинать с нее."
Но как это сделать я так и не понял, как работать с qt документацией? примеров не нашёл.
Читаю книгу ООП Лафоре.

так как не знаю как пользоваться этой подсказкой, пока придумал такую реализацию:
- открою файл для чтения, сделаю поиск строки, выдаст сообщение если найдёт, посчитаю кол-во строк в файле, запомню в переменной номер последней строки, закрою файл.
- по таймеру открою опять файл, из переменной возьму последнюю строку +1 и с этой строки буду опять искать, что бы не искать заново по всему файлу.
ещё можно сделать проверку перед запуском поиска изменился ли файл, либо по его размеру, либо опять же по кол-ву строк определять. Если файл не изменился выдать предупреждение, что возможно повисла программа которая пишет в лог файл.

смущает что лог файл большой и очень много строк будет, наверно мой способ будет медленный.

подскажите как сделать правильней.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Aleksei   чтение txt файла кусками   12.2.2015, 23:46
- - Trisch   В принципе, алгоритм верный. Для открытия файла и...   13.2.2015, 1:50
- - lanz   Цитатазапомню в переменной номер последней строки ...   13.2.2015, 9:16
- - Aleksei   Цитата(lanz @ 13.2.2015, 10:16) Цитата за...   13.2.2015, 13:53
- - Aleksei   разобрался с проверкой изменения файла, конечно по...   16.2.2015, 23:24
- - lanz   ЦитатаПолучается считывает тоже весь файл? Нет, фа...   16.2.2015, 23:41
- - Aleksei   Цитата(lanz @ 17.2.2015, 0:41) Цитата хм ...   17.2.2015, 0:38
- - Aleksei   изучаю дальше и немного добавляю полезность в свою...   18.2.2015, 9:28
- - lanz   Цитататеперь ищу информацию как сделать поиск в фа...   18.2.2015, 20:02
- - Aleksei   Цитата(lanz @ 18.2.2015, 21:02) Если файл...   19.2.2015, 22:09
- - lanz   Цитатаможно по подробней? Если файл текстовый, то ...   20.2.2015, 14:06
- - Aleksei   сделал пока поиск без позиций void MainWindow...   20.2.2015, 19:53
- - Aleksei   не пойму, что случилось, только что искал как надо...   20.2.2015, 21:07
- - Aleksei   поиск работает не верно ищет только в последней ст...   20.2.2015, 23:37
- - lanz   Казнить нельзя помиловать   21.2.2015, 13:24
- - Aleksei   решил по другому сделать прогу. поиск так и не зар...   24.2.2015, 22:36
- - Aleksei   пробовал оставить одну кнопку с выводом сообщения ...   24.2.2015, 23:27
- - Aleksei   сегодня этой ошибки уже нет. добавил виджет QProgr...   25.2.2015, 11:48
- - lanz   http://qt-project.org/doc/qt-4.8/qprogress...tml#f...   25.2.2015, 21:44
- - Aleksei   Цитата(lanz @ 25.2.2015, 22:44) http://qt...   26.2.2015, 9:10
- - Aleksei   Переделал. void MainWindow::on_action_tri...   27.2.2015, 1:05
- - lanz   ЦитатаНо если в тексте 400 или 40000, а я ищу 4 ил...   27.2.2015, 9:30
- - Aleksei   не могу найти как сделать что бы выводил (сверял) ...   1.3.2015, 0:43
- - Aleksei   идея: 1) Можно найти длину строки вводимой в поиск...   1.3.2015, 9:40
- - lanz   Зачем так сложно? Используйте последовательность ...   1.3.2015, 12:25
- - Aleksei   Цитата(lanz @ 1.3.2015, 13:25) Зачем так ...   2.3.2015, 15:03
- - lanz   Что то вроде: .*\\b500\\b.* Ещ...   2.3.2015, 16:11
- - Aleksei   lanz, с тобой можно пообщаться? skype или icq   2.3.2015, 17:27
- - Aleksei   нашёл как сделать по другому void MainWindow:...   3.3.2015, 0:33
- - Aleksei   рабочий поиск без позиций QTextStream stream...   5.3.2015, 22:31


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 6:09