![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Mach3 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 26.11.2005 Репутация: 3 Всего: 2 |
Возможно ли ускорить (оптимизировать) как-нибудь этот "кусок"? Заранее благодарен.. --------------------
Век живи - век учись... |
|||
|
||||
| Matematik |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 17 Всего: 50 |
что в переменной "l"?
Что код должен делать? Это сообщение отредактировал(а) Matematik - 28.9.2010, 11:01 |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 5 Всего: 112 |
||||
|
||||
| RomanEEP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: 5 Всего: 8 |
|
|||
|
||||
| Amphiluke |
|
||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 5 Всего: 112 |
Можно обойтись без PosEx (и сответственно, без StrUtils.pas)
Использование:
Добавлено через 4 минуты и 45 секунд В этом случае по мере парсинга строка, в которой ведется поиск, будет планомерно сокращаться, а быстродействие расти, что может быть полезно, если HTML-код таблицы очень большой. |
||||
|
|||||
| RomanEEP |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: 5 Всего: 8 |
т.к. PosEx ищет с нужного места, то поиск сокращается аналогично. а вот строка
приведет к копированию чудовищного объема данных, так же как и эта:
+ нагрузка по разбиванию строки на подстроки, неучет возможности, что в ячейке таблицы есть символы переноса строки |
||||
|
|||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 5 Всего: 112 |
Пожалуй, вы правы.
|
|||
|
||||
| Mach3 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 26.11.2005 Репутация: 3 Всего: 2 |
примного благодарен за внимание..
RomanEEP, за счет чего ваш код будет работать более шустро? извиняюсь, если не улавливаю очевидного.. --------------------
Век живи - век учись... |
|||
|
||||
| RomanEEP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: 5 Всего: 8 |
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 начало и конец вхождения найденных подстрок Это сообщение отредактировал(а) RomanEEP - 28.9.2010, 19:17 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |