![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Delphi TFileStream Parser [D7, WinXP]
Baner © (2009-12-17 16:46:00)Здравствуйте!
Недавно пришлось написать парсер лог файлов и ввод найденной информации в базу данных MSSQL. Все принципиально работает, но столкнулся с проблемой оптимизации. Имеется сервер, который пишит логи каждую секунду. Моя программа считывает последние данные и парсит их (TFileStream). Если я ставлю таймер обращения на 5-10 секунд, все отлично работает, и самая актуальная информация не теряется. Но через минут 20-30 программа просто теряет доступ на этот файл - он больше просто не открывается. Через какоето время программа опять получает доступ. Если сделать запрос каждые две минуты, тогда надо очень много информации отрезать с конца файла, что приводит к лагам TMemo при построчной обработке.
Вопрос: Какой метод лучше использовать для 5-10 секундного обращения к файлу и считывания информации, или же как обработать информацию полученную за 2 минуты, если в ней очень много строчек.
С уважением,
Дмитрий
alexrayne (2009-12-19 22:19:00) [1]А вы как работаете с файлом? открываете в рашареном доступе или открываете эксклюзивно, потом закрываете? а сервер как с ним обращается?
Германн (2009-12-19 01:32:00) [2]
> Олег, тебе ничего продлить не надо ? А то обращайся :)
<offtop>
А может и мне чего найдётся? :)
</offtop>
Игорь Шевченко (2009-12-19 00:47:00) [3]Причем, на плохую камеру.
Ega23 © (19.12.09 00:09) [4]
Олег, тебе ничего продлить не надо ? А то обращайся :)
Ega23 (2009-12-19 00:09:00) [4]
> В него записывается результат полученный через TFileStream
> и после этого построчно обрабатывается.
Фактически, ты сделал так: для передачи телевизионного сигнала по кабелю ты воткнул кабель в телевизор, поставил напротив него камеру и снимаешь то, что у тебя на экране. Полученный сигнал передаёшь.
MBo (2009-12-17 17:16:00) [5]Это неразумно. Достаточно TStringList использовать для обработки, а уж потом, если что-то надо вывести, тогда Memo (и при добавлении значительного количества строк BeginUpdate/EndUpdate делать)
Baner (2009-12-17 17:12:00) [6]В него записывается результат полученный через TFileStream и после этого построчно обрабатывается.
MBo (2009-12-17 16:57:00) [7]какое отношение TMemo имеет к обработке информации?