Вниз
Скачать: CL | DM;

Функция поиска подстроки   Найти похожие ветки 

 
kull   (2002-03-14 03:04) [0]

Знает кто-нибудь в Delphi функцию поиска подстроки в строки типа Pos(), но чтобы была не чувствительна к регистру?
Пробовал сначала AnsiUpperCase(), а потом использовать Pos(), но AnsiUpperCase() сильно тормозит...


 
~Sergius   (2002-03-14 03:18) [1]

В чем тормозит ANSIUpperCase??


 
kull   (2002-03-14 03:24) [2]

Дело в том, что если пропустить использование AnsiUpperCase то все работает раза в 2 быстрее.
А вообще то у меня имеется список строк и надо найти строки, которые содержат нужный текст.


 
~Sergius   (2002-03-14 03:37) [3]

Разумеется, что оно без ANSIuppercase будет работать быстрее, поскольку ANSIuppercase вызывает еще OemToChar для преобразования из дос кодировки. Если строки не содержать русских символов в дос кодировке, тогда используй просто uppercase


 
kull   (2002-03-14 03:40) [4]

Втом то и дело, что содержат русские символы и не русские.


 
~Sergius   (2002-03-14 04:11) [5]

ну, тут разве что самому переводить через chartooem, но быстрее вряд ли будет -- посмотри исходники ANSIuppercase и поймешь, что оптимизировать там нечего. Разве что пересмотреть логику программы


 
kull   (2002-03-14 13:15) [6]

Да... Я так и думал...


 
Alx2 ©   (2002-03-14 13:37) [7]

Попробуй UpperCase почти вручную сделать.
Делаем массив
Var cnvMap : array ["а".."я"] of char = ("А","Б"...)
и через него конвертим в uppercase.
а cnvMap предварительно заполняем через AnsiUpperCase


 
lipskiy ©   (2002-03-14 13:53) [8]

Согласен с Alx2. Я тоже делаю так - работает быстро.


 
kull   (2002-03-15 02:05) [9]

Ok! Спасибо! Попробую...



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
3-90799
KHunter
2002-03-04 15:57
2002.03.28
EhLib


4-91103
Raven
2002-01-04 09:44
2002.03.28
Отслежка запуска программы другой программой


1-90833
Лана Розанова
2002-03-16 13:13
2002.03.28
Удаление


6-91027
Елена3000
2002-01-11 23:45
2002.03.28
!!!Internet!!!


7-91090
Pat
2001-12-26 12:56
2002.03.28
WinExec( C: con con ,sw_restore)




   Наверх