|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.02.2013, 17:43 | #1 |
Форумчанин
Регистрация: 04.01.2011
Сообщений: 260
|
Функция COPY. Быстродействие.
Добрый день. Есть функция удаления подстроки типа <gg hhh>jjjj</gg> из строки
(на самом деле посимвольное копирование когда это не запрещено условием) Код:
но есть подозрение, что использование COPY (DefineTeg:=Copy(Data, I,10) увеличивает время обработки Внимание!! Вопрос: 1. действительно ли COPY не самое лучшее решение по быстродействию 2. чем можно заменить COPY? может вставка на ASM? |
16.02.2013, 17:51 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
16.02.2013, 18:06 | #3 |
Форумчанин
Регистрация: 04.01.2011
Сообщений: 260
|
заменил на
Код:
|
16.02.2013, 18:08 | #4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Берите из KOL функцию если вам так скорость нннада.
|
16.02.2013, 18:09 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Сору не только проще, но и надежнее. Я бы не парился по этому поводу.
Кстати я бы на твоем месте использовал StringReplace для удаления. Или сочетание Pos() и delete()
I'm learning to live...
|
18.02.2013, 07:35 | #6 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
1. ЕСТЬ ОШИБКА
Проверять нужно не на '<script', а на '<script>'. Иначе вот это 1<script2</script>3 4<script>5</script>6 превратится в это 13 46 а должно вот в это 1<script2</script>3 46 2. ИСПОЛЬЗУЕМ ЦИКЛЫ ГРАМОТНО Код:
3. ХИТРОСТИ ПРИВЕДЕНИЯ ТИПОВ ВМЕСТО COPY Нам не нужно само копирование в данном случае Код:
4. СТРАННОЕ УПОРСТВО Ведь вот это работает быстрее Код:
5. ХОТЯ МОЖЕТ И НЕ СТРАННОЕ или ХИТРОСТИ ПРИВЕДЕНИЯ ТИПОВ 2 Самый быстрый вариант, но только для постоянных строк поиска Код:
P.S.: Скорость проверял на Lazarus'е, потому может не соответствовать на Delphi. Но тенденция должна сохраниться. Последний раз редактировалось Sibedir; 18.02.2013 в 12:02. Причина: Мамочки, скока ошибок сам наделал |
18.02.2013, 14:13 | #7 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Понравилась мне чёт эта тема
Вот 2 программки сравнивающие разные функции. Удаление подстрок.zip Во 2-ом варианте все ф-и имеют в качестве параметров тэги. А DelUseless3 вырождается. Дома гляну, как это на Delphi работает. |
18.02.2013, 16:54 | #8 | |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
Цитата:
|
|
18.02.2013, 19:13 | #9 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Понял.
____________________ |
19.02.2013, 20:49 | #10 |
Форумчанин
Регистрация: 04.01.2011
Сообщений: 260
|
всем спасибо, скоро добавлю свой вариант
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Быстродействие VBA | Sasha_Smirnov | Microsoft Office Word | 24 | 06.12.2012 13:35 |
Быстродействие SQL и C# | Manolla | C# (си шарп) | 3 | 28.09.2011 08:26 |
Быстродействие инструментов С++ | coinkrsk | Общие вопросы C/C++ | 2 | 07.10.2010 13:34 |
Не работает функция copy и delete | omigos99 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 03.10.2010 13:46 |
Быстродействие | sxerox | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 19.04.2010 18:53 |