Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Вниз

Как найти подстроку в строке???   Найти похожие ветки 

 
Netizen   (2002-08-22 23:00) [0]

Вобщем такой прикол - допустим есть у меня строка вводимая юзером (Edit1)"ффропропффккерофф" и он же вводит подстроку (Edit2) например фф и в Edit3 должен вывестись результат количества подстроки в строке - тоесть в даном случае 3!


 
Юрий Зотов   (2002-08-22 23:46) [1]

Что-то типа этого (писал "на лету", не проверял, проверьте сами).

function SubCount(Src, Sub: string): integer;
begin
Result := Pos(Sub, Src);
if Result > 0 then
begin
Delete(Src, Result, Length(Sub));
Result := 1 + SubCount(Src, Sub)
end
end;


 
Ученик   (2002-08-22 23:48) [2]

>Netizen © (22.08.02 23:00)
А ффф - это 2 фф или как ?


 
Юрий Зотов   (2002-08-22 23:51) [3]

Дополнение.

Вообще-то, задача поставлена некорректно. Например, сколько раз входит подстрока "aa" в строку "aaaа"?

Варианты ответов:
- 2 раза;
- 3 раза.

И оба правильные. Смотря, как считать.




 
Anatoly Podgoretsky   (2002-08-22 23:52) [4]

Если две то Delete(Src, Result, 1); только лучше уйти от рекурсии, а то на длинных строках будет проблема со стеком


 
Ученик   (2002-08-23 00:01) [5]

>Netizen © (22.08.02 23:00)

function SubCount(const S, Sub : string) : Integer;
var
i, l : Integer;
begin
Result := 0;
l := Length(Sub);
for i := 1 to Length(S) - l + 1 do
if Copy(s, i, l) = Sub then
Inc(Result)
end;


 
Anatoly Podgoretsky   (2002-08-23 00:12) [6]

Лучше использовать StrLComp или StrLIComp, что бы не проводить копирования, думаю будет значительно быстрее, хотя требуется проверка.

if StrLComp(S, Sub, l) = 0 then



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

Форум: "Основная";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
1-3478
Zevs_mv
2002-08-21 10:23
2002.09.02
Мастера помогите с Excel


4-3665
mcs
2002-06-27 09:43
2002.09.02
Список экспортируемых ф-ций


1-3442
Vogus
2002-08-20 12:24
2002.09.02
MDI формы и объекты управления


6-3536
lds
2002-06-21 13:29
2002.09.02
Как изменить размер шрифта в TWebBrouser ?


1-3504
KIR
2002-08-21 11:49
2002.09.02
Как программно прокрутить StringGrid?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский