| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Ускорить парсер.. |
| Автор: Mach3 28.9.2010, 10:11 | ||
Возможно ли ускорить (оптимизировать) как-нибудь этот "кусок"? Заранее благодарен.. |
| Автор: Matematik 28.9.2010, 10:57 |
| что в переменной "l"? Что код должен делать? |
| Автор: Amphiluke 28.9.2010, 11:05 |
Во всей видимости, выбирает текст из HTML-кода таблицы. |
| Автор: RomanEEP 28.9.2010, 11:54 | ||
|
| Автор: Amphiluke 28.9.2010, 12:12 | ||||
Можно обойтись без PosEx (и сответственно, без StrUtils.pas)
Использование:
Добавлено через 4 минуты и 45 секунд В этом случае по мере парсинга строка, в которой ведется поиск, будет планомерно сокращаться, а быстродействие расти, что может быть полезно, если HTML-код таблицы очень большой. |
| Автор: Amphiluke 28.9.2010, 12:54 |
| Пожалуй, вы правы. |
| Автор: Mach3 28.9.2010, 13:06 |
| примного благодарен за внимание.. RomanEEP, за счет чего ваш код будет работать более шустро? извиняюсь, если не улавливаю очевидного.. |
| Автор: RomanEEP 28.9.2010, 19:10 | ||
1) к примеру, если между 20 и 30 символом я нашел искомую строку, то следующую ищу уже с 30 + Length(sEnd) символа, а твой код крутит цикл 6, 7, 8 и так далее до 30 2)уже с 30 символа пытается искать следующую, хотя надо искать с 30 + Length(sEnd) 3)Если строка пустая, то цикл по j прокрутится всю длину строки 4)Я сделал мелкии оптимизации вроде того что после символа Length(s) - Length(sStart) - Length(sEnd); тоже ничего не будет найдено, т.к просто не уместится ЗЫ: Можно оптимизировать и дальше, например сделать Trim на лету, совместить поиск конца подстроки с Copy, запихивать найденную подстроку в статический массив, чтобы избежать выделений памяти, может быть заменить Length() на константы (не уверен какой код там подставляет компилятор) + можно результаты хранить не в стринг листе, а запихивать в массив Integer начало и конец вхождения найденных подстрок |