Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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 имеет к обработке информации?


Наверх

Титульная страница Поиск, карта сайта Написать письмо