|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.07.2011, 01:22 | #1 |
Форумчанин
Регистрация: 01.04.2010
Сообщений: 171
|
Упрощения парсинга текста
Всем доброго времени суток. Помогите решить проблему. По заказу написал программу для парсинга.
Есть текст такого типа Код HTML:
| 69.168.44.98:5060 | unknown | | | 152.179.24.182:54814 | Cisco-SIPGateway/IOS-12.x | | | 63.117.214.69:5060 | unknown | | | 63.119.12.250:5060 | ARRIS-TM602G release v.6.1.77T.SIP SN/001DCD7C2E08 | | | 63.65.167.174:5060 | unknown | | | 69.168.44.212:5060 | unknown | | | 63.119.51.249:5060 | unknown | | | 69.168.41.51:5060 | unknown | | | 63.108.178.14:5060 | Asterisk PBX | | Реализую я это такой процедурой Код:
Как быть?( помогите найти выход из ситуации. Что поменять в коде? Последний раз редактировалось Lauri; 16.07.2011 в 01:33. |
16.07.2011, 01:35 | #2 |
Форумчанин
Регистрация: 08.08.2010
Сообщений: 371
|
Зачем здесь переменные a,b. К тому же, МЕМО можно заменить на TStringList
Хакинг - не преступление, а способ выживания.
|
16.07.2011, 01:39 | #3 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> Как быть?
Добавить вызов Sleep(1) перед или после application.ProcessMessages(); (ЗЫ. Это будет не "упрощение", а замедление парсинга, но раз заказчик сам этого хочет, пусть получает)
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
Последний раз редактировалось veniside; 16.07.2011 в 01:42. |
16.07.2011, 01:43 | #4 | |
Форумчанин
Регистрация: 08.08.2010
Сообщений: 371
|
По моему проще было бы написать
Код:
В данном примере Цитата:
И как я уже говорил, Выводить в МЕМО только результат. А данные из TStringList читать, поместив в переменную обрабатываемую строку, а после обработки если она подходит то её в МЕМО выводить.
Хакинг - не преступление, а способ выживания.
|
|
16.07.2011, 01:46 | #5 |
Форумчанин
Регистрация: 08.08.2010
Сообщений: 371
|
veniside Парсинг нужно не замедлить а оптимизировать. Хотя ваш вариант тоже приемлем, но для небольших файлов.
Хакинг - не преступление, а способ выживания.
|
16.07.2011, 01:46 | #6 | |
Форумчанин
Регистрация: 01.04.2010
Сообщений: 171
|
Цитата:
Спасибо, помогает. На этот вопрос я получил ответ. Но хотелось бы не терять скорость, ведь работаю с файлами по 9 мб...( Может как то предварительно порезать файл на части и грузить по очереди каждую часть? |
|
16.07.2011, 01:47 | #7 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Сколько ни мудри, этот цикл без Sleep() или подобного всегда будет грузить одноядерный проц на 100%, и это правильно, так и должно быть, заказчик просто тупит.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
16.07.2011, 09:07 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
1) КАТЕГОРИЧЕСКИ не рекомендую использовать Memo для обработки текста!
Фактически, Вам нужен Lines - так он типа TSTringList вот создавайте объект TStringList и работайте с ним. Код:
2) в 99% задач парсинга НЕ ТРЕБУЕТСЯ удалять строчки из текста. А это КРАЙНЕ тормозная операция! ЗАчем Вы удаляете строки из Memo1 ?! попробуйте такой код. О результатах отпишитесь: Код:
Последний раз редактировалось Serge_Bliznykov; 16.07.2011 в 09:19. |
16.07.2011, 12:11 | #9 | |
Форумчанин
Регистрация: 01.04.2010
Сообщений: 171
|
Цитата:
Вывод : Работать со стринглист, в мемо выводить ТОЛЬКО результат. Правильно понимаю? |
|
16.07.2011, 12:40 | #10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ну да, компоненты это средство ввода/вывода информации, но не для прямой обработки.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не выводится текст парсинга | bulldog5293 | Работа с сетью в Delphi | 0 | 30.04.2011 18:26 |
Банальное равенство парсинга | bulldog5293 | Общие вопросы Delphi | 2 | 29.03.2011 00:29 |
ВАРИАНТЫ ПАРСИНГА | Vova777 | Общие вопросы Delphi | 2 | 04.09.2010 23:51 |
Мелкая ошибка парсинга | Legenda | PHP | 4 | 02.10.2008 17:52 |
пример парсинга | Stanislav | Общие вопросы Delphi | 4 | 14.01.2008 03:48 |