|
Парсер тексовых логов
|
|||
---|---|---|---|
#18+
Помогите, пожалуйста, сделать парсер текстовых логов (*.txt) для Access. Вид логов: ========= User: Ivanov IP: 192.168.111.12 ========= <date> 12.07.2014 </date> 12.07.2014 18:50:01 : Запуск копирования 12.07.2014 18:59:10 : Завершение копирования ========= User: Petrov IP: 192.168.111.10 ========= <date> 12.07.2014 </date> 12.07.2014 10:01:32 : Запуск копирования 12.07.2014 11:12:07 : Завершение копирования На выходе должны получить таблицу: User IP SessionDate CopyTime DescriptionIvanov 192.168.111.1212.07.201412.07.2014 18:50:01Запуск копированияIvanov 192.168.111.1212.07.201412.07.2014 18:59:10Завершение копированияPetrov 192.168.111.1012.07.201412.07.2014 10:01:32Запуск копированияPetrov 192.168.111.1012.07.201412.07.2014 11:12:07Завершение копирования Заранее спасибо за любую помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 12:29 |
|
Парсер тексовых логов
|
|||
---|---|---|---|
#18+
GutenMorgan, стандартных способов нет. Файл нужно читать построчно (или целиком) средствами VBA (или FSO.TextStream, или ADODB.Stream), анализировать каждую строку, вычленять требуемые данные и добавлять записи в Recordset, открытый на таблице-получателе. Вот пример процедуры для вашего случая: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Строка с Debug.Print выводит результаты в окно отладки. Вместо нее надо выполнить добавление записи в Recordset. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 16:18 |
|
Парсер тексовых логов
|
|||
---|---|---|---|
#18+
GutenMorgan, Открываешь лог на чтение, читаешь построчно, анализируешь каждую строку и пишешь соответствующие данные в таблицу. Примеров на чтение бесконечное множество. Анализ - не сложный: "=========" готовишься читать первую строчку с "User" если сейчас приходит строчка, начинающаяся на "User", парсишь ее и пишешь новую строку в рекордсет или готовишь новый инсерт. Если приходит строка не содержащая "User" в первых символах - решаешь сам что делать. Если все нормально ждешь в след строке IP. Пришло IP, парсишь строку и пишешь в рекордсет или готовишь строку для инсерта ну и так далее ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2014, 16:19 |
|
Парсер тексовых логов
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ), Большое спасибо! Работает как надо, только в массиве с описанием arr(4) сбивается кодировка; в окне дебага и после вставки видны абракадабры: Завершение ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Не подскажете, как это можно исправить? Исходный файл в Windows-1251 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2014, 09:50 |
|
Парсер тексовых логов
|
|||
---|---|---|---|
#18+
GutenMorganв массиве с описанием arr(4) сбивается кодировка; в окне дебага и после вставки видны абракадабры: Завершение ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ А в строке до занесения в массив? Или в считанном из файла тексте? GutenMorganИсходный файл в Windows-1251 Вы уверены? Если файл открывать в Ворде, какую кодировку предлагает? Или отткрыть в блокноте, а затем "Сохранить как" - какая кодировка высвечивается? Может файл выложите? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2014, 11:49 |
|
|
start [/forum/topic.php?fid=45&msg=38704749&tid=1616578]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 253ms |
total: | 381ms |
0 / 0 |