
19.02.2009, 12:30
|
 |
Активный
|
|
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
|
|
Код:
function gg(num, s: string): Integer;
var
tmp: string;
x, l: Integer;
begin
Result:= 0; //Устанавливаем значение функции на 0
tmp:= s; //Сохраняем строку во временной переменной (т.к. мы будем ее изменять)
x:= Pos(num, tmp); //Смотрим встречается ли num в s
l:= Length(num); //Определяем длину num (дабы не определять ее каждый раз в цикле)
//если x=0 тогда выход из функции (поэтому используем while, а не repeat)
while x > 0 do //Цикл работает пока строка num встречется в строке tmp
begin
tmp:= Copy(tmp, x + l, Length(tmp)); //удаляем из строки tmp начальные символы до позиции num + дляна num (т.к. Pos() ищет только первое вхождение одной строки в другую)
inc(Result); //Увеличиваем значение функции на 1, т.к. одно вхождение мы обнаружили
x:= Pos(num, tmp); //Смотрим встречается ли num в измененной строке tmp (если нет, то выход из цикла)
end;
end;
Понятно объяснил?
|