![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нужен быстрый способ разбора строк [D7, WinXP]
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) и только правильно рассчитывать последние два параметра.
Тогда не будет лишних операций с исходной строкой.