Здравствуйте, гость ( Вход | Регистрация )
|
Aleksei |
12.2.2015, 23:46
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 23 Регистрация: 3.9.2014 Пользователь №: 4219 Спасибо сказали: 0 раз(а) Репутация: 0
|
задача открыть лог файл и найти в нём строку, выдать сообщение. Так как лог файл обновляется постоянно, то я буду по таймеру запускать поиск. Файл можно открыть только для чтения.
Товарищ FireBlack подсказал: "читаете его кусками и ищете искомую запись. Если, как Вы говорите, это большой лог файл (который только дополняется), то имеет смысл запоминать последнюю Link и при следующем чтении файла Link." Но как это сделать я так и не понял, как работать с qt документацией? примеров не нашёл. Читаю книгу ООП Лафоре. так как не знаю как пользоваться этой подсказкой, пока придумал такую реализацию: - открою файл для чтения, сделаю поиск строки, выдаст сообщение если найдёт, посчитаю кол-во строк в файле, запомню в переменной номер последней строки, закрою файл. - по таймеру открою опять файл, из переменной возьму последнюю строку +1 и с этой строки буду опять искать, что бы не искать заново по всему файлу. ещё можно сделать проверку перед запуском поиска изменился ли файл, либо по его размеру, либо опять же по кол-ву строк определять. Если файл не изменился выдать предупреждение, что возможно повисла программа которая пишет в лог файл. смущает что лог файл большой и очень много строк будет, наверно мой способ будет медленный. подскажите как сделать правильней. |
|
|
|
![]() |
|
Aleksei |
1.3.2015, 0:43
Сообщение
#2
|
|
Студент ![]() Группа: Участник Сообщений: 23 Регистрация: 3.9.2014 Пользователь №: 4219 Спасибо сказали: 0 раз(а) Репутация: 0
|
не могу найти как сделать что бы выводил (сверял) именно то число которое ввёл пользователь.
если ограничить {3} тремя символами, то это будет неправильно, ведь пользователь может захотеть искать и двухзначное число. QRegExp rx("[0-9]{1,4}"); результат решил выводить через List, теперь не затирает. ui->listWidget->addItem(rx.cap(0)); |
|
|
|
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) Можно найти длину строки вводимой в поиск... 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![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 15.12.2025, 9:54 |