![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 04.01.2011
Сообщений: 267
|
![]()
Добрый день. Есть функция удаления подстроки типа <gg hhh>jjjj</gg> из строки
(на самом деле посимвольное копирование когда это не запрещено условием) Код:
но есть подозрение, что использование COPY (DefineTeg:=Copy(Data, I,10) ![]() Внимание!! Вопрос: 1. действительно ли COPY не самое лучшее решение по быстродействию 2. чем можно заменить COPY? может вставка на ASM? |
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 04.01.2011
Сообщений: 267
|
![]()
заменил на
Код:
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Берите из KOL функцию если вам так скорость нннада.
|
![]() |
![]() |
![]() |
#5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Сору не только проще, но и надежнее. Я бы не парился по этому поводу.
Кстати я бы на твоем месте использовал StringReplace для удаления. Или сочетание Pos() и delete()
I'm learning to live...
|
![]() |
![]() |
![]() |
#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. Причина: Мамочки, скока ошибок сам наделал |
![]() |
![]() |
![]() |
#7 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
Понравилась мне чёт эта тема
![]() Вот 2 программки сравнивающие разные функции. Удаление подстрок.zip Во 2-ом варианте все ф-и имеют в качестве параметров тэги. А DelUseless3 вырождается. Дома гляну, как это на Delphi работает. |
![]() |
![]() |
![]() |
#8 | |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#9 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
Понял.
____________________ |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 04.01.2011
Сообщений: 267
|
![]()
всем спасибо, скоро добавлю свой вариант
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Быстродействие 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 |