Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

Нужна функция поиска и замены   Найти похожие ветки 

 
SergP ©   (2004-07-10 21:11) [0]

Нужна функция поиска и замены без учета регистра.

Я писал нечто с использованием AnsiUpperCase, pos, delete, insert
но этот вариант мне не нравится, так как функция должна работать как можно быстрее (обрабатываются большие строки с большим кол-вом замен)

Может кто что-нить может предложить толковое? Типа может есть стандартные функции для этого, или может кто сам писал?


 
Огромное Кулясищще ©   (2004-07-10 21:19) [1]

Может FastStrings подойдёт


 
SergP ©   (2004-07-10 21:31) [2]


> Может FastStrings подойдёт


Где это есть?


 
AD_infiniTUM   (2004-07-10 21:43) [3]

В D7 (незнаю как D6), в SysUtils есть функция StringReplace, четвертым параметром можно установить флаг, чтобы не учитывался регистр. Но мне почему-то не получилось заставить ее работать (Delphi ругается на этот черветый параметр, не понял что он хочет).


 
SergP ©   (2004-07-10 22:00) [4]


>  [3] AD_infiniTUM   (10.07.04 21:43)


Спасибо. В D6 она есть в SysUtils.
Проверил, Все работает...


 
MBo ©   (2004-07-11 12:11) [5]

Если объемы велики и быстродействие существенно
(судя по >так как функция должна работать как можно быстрее ), то воспользуйся QStrings или упомянутой FastStrings (нетрудно найти поиском в инете)


 
SergP ©   (2004-07-11 12:59) [6]


>  [5] MBo ©   (11.07.04 12:11)

Закачал FastStrings

А кто-нить может сказать насколько функции этой библиотеки эффективнее стандартных?


 
SergP ©   (2004-07-11 13:04) [7]

Хм... На ихнем сайте нашел:

FastStrings
FREE: A useful set of assembly optimised string manipulation routines. The most remarkable of these is without a doubt the FastReplace function. StringReplace took over 8 hours to complete multiple replacements on a 10mb string, whereas FastReplace took 0.5 seconds (yes, half of a second).

Что-то не верится. 8 часов и пол-секунды....???


 
MBo ©   (2004-07-11 13:25) [8]

>SergP
На ОЧЕНЬ длинных строках Pos, а особенно StringReplace работают действительно медленно. Насколько это скажется в твоих обтоятельствах- не знаю.
сюда еще загляни.
http://dennishomepage.gugs-cats.dk/FastCodeProject.htm


 
Igorek ©   (2004-07-11 15:38) [9]


> StringReplace took over 8 hours to complete multiple replacements
> on a 10mb string, whereas FastReplace took 0.5 seconds (yes,
> half of a second).
>
> Что-то не верится. 8 часов и пол-секунды....???

Очень может быть.
- тестировалось на ОЧЕНЬ быстром процессоре
- алгоритм StringReplace превысил обьем оперативки и из-за свопирования оно еле ползло
- пример для тестирования был оптимизирован для FastReplace :-)))


 
KilkennyCat ©   (2004-07-11 15:54) [10]


> Igorek ©   (11.07.04 15:38) [9]


Думаю, что тестировалось на одном и том же процессоре, на одном и том же примере.


 
MBo ©   (2004-07-11 16:01) [11]

>Igorek ©   (11.07.04 15:38) [9]
Достаточно посмотреть в исходниках, как сделана StringReplace - c использованием сложения новой строки из кусков - при множествнных заменах - это многократное выделение памяти.


 
Igorek ©   (2004-07-11 16:43) [12]


> Думаю, что тестировалось на одном и том же процессоре, на
> одном и том же примере.

Кстати неочевидно. Для демонстрации преимуществ они могли для FastString дать даже хуже процессор и пример. Хотя обычно так не делают.


> MBo ©   (11.07.04 16:01) [11]
> >Igorek ©   (11.07.04 15:38) [9]
> Достаточно посмотреть в исходниках, как сделана StringReplace
> - c использованием сложения новой строки из кусков - при
> множествнных заменах - это многократное выделение памяти.

Понятно. Тормозило на динамическом выделении памяти как я понимаю. Но для полного анализа надо также исходники FastString.



Страницы: 1 вся ветка

Текущий архив: 2004.07.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.077 c
14-1089123073
VEG
2004-07-06 18:11
2004.07.25
Дайте, пожалуйста, совет насчет доменов и хостинга


14-1088911799
Григорьев Антон
2004-07-04 07:29
2004.07.25
А кто за статьи на этом сайте отвечает?


1-1089361405
hgd
2004-07-09 12:23
2004.07.25
Как рисовать на canvas Image без фона


8-1084306993
Рома
2004-05-12 00:23
2004.07.25
Уменьшение битмапа


6-1085678736
Tipson
2004-05-27 21:25
2004.07.25
TWebbrowser -возможен ли стандатный статус бар?