Тема: Функция
Показать сообщение отдельно
  #8  
Старый 19.02.2009, 12:30
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 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;
Понятно объяснил?
Ответить с цитированием