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

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

Нужен быстрый способ разбора строк [D7, WinXP]


Страницы:   1 2

Sens ©   (2004-08-02 11:01:00) 

Доброго Всем дня.

Возникла следующая проблема:
Есть лог файл  сквида ( это одна строка)

1088655074.210   4710 192.168.1.249 TCP_MISS/200 406 GET http://www.internet-optimizer.com/conf/signin/?- DIRECT/65.39.191.5 text/html

Необходимо разобрать строку примерно по таким полям:

Время:  1088655074.210 <br>
Размер: 4710 <br>
Адрес запрашиваемого:  192.168.1.249 <br>
TCP_MISS/200 406 <br>
Метод (направление запроса): GET <br>
Адрес: http://www.internet-optimizer.com/conf/signin/?- DIRECT/65.39.191.5 text/html <br>

преобразовать это дело в базу (использую Access) для создания отчета по использованию интернет.

разделители между полями (в строке) пробелы, количество в разных строках разное (использовать какой либо формат для разбора не получается). На данный момент разбираю строку по алгоритму:
1. От позиции начала до первого пробела <br>
2. Запихиваю первое значение в базу (в нужное поле)<br>
3. Отсекаю все пробелы до первого не пробела <br>
4. Обрезаю строку.<br>
5. Повторяю цикл до конца строки.<br>
6. Повторяю цикл до конца файла.<br>

Все было хорошо пока файл был меньше 10МБ,на его преобразование уходило ~10-15 мин, но теперь он за месяц выростает до 60-100 МБ, и наш компик загибается на долгое время (2-4 часов).

Подскажите пожалуйста более быстрый алгоритм разбора строки (все упирается в него).


Sandman25   (2004-08-02 11:07:00) [21]

Не надо ничего отсекать. Надо все время использовать Copy(S, StartIndex, ALength) и только правильно рассчитывать последние два параметра.
Тогда не будет лишних операций с исходной строкой.


Страницы:   1 2

Наверх

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