
Выкладываю просто функцию *_*
function PosCount(substr, str: string): integer;
var
p, i: integer;
begin
i:=-1;
p:=0;
repeat
i:=i+1;
p:=PosEx(substr, str, p + Length(substr));
until p=0;
Result:=i;
end;
Количество подстрок определяет на ура, писал для просто символов.
(c) crystalbit, http://parsers.info
Функции, функции, как мило. А сейчас весна, между прочим. Помимо функций думаю купить кое-кому цветы, даже сайт под рукой ( http://www.flo4you.ru/ ) Красивые букеты, даже скидки какие-то есть.
А что есть количество подстрок в строке? Сколько подстрок содержит строка «abc»? 6?
Привет)
Функция Pos говорит о позиции подстроки в строке.
Подстрока – это я так перевел substr – строка, позицию которой мы определяем в основной строке (str).
А в функции PosCount мы определяем не позицию, а количество.
Например, в строке abc есть строка (подстрока^^) bc, она всего одна.
Функция Pos(‘bc’, ‘abc’) вернет 2, так как она начинается со второго. А PosCount(‘bc’, ‘abc’) вернет 1.
Еще пример – в строке ‘abcabc’ есть две подстроки ‘b’.
Теперь понятно, что-то я сглупил немного
.