Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Рекурсивный поиск с помощью функции Pos

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

function PosN(Substring, Mainstring: string; n: Integer): Integer;

 { 
Function PosN ermittelt rekursiv - die N te Position von 
"Substring" in "Mainstring". Ist der String nicht enthalten, 
Ergebnis 0. Falls N zu hoch ist, wird das letzte gefundene 
Vorkommen angezeigt. Funktioniert mit Chars und Strings 
}

 { 
Function PosN get recursive - the N th position of "Substring" in 
"Mainstring". Does the Mainstring not contain Substrign the result 
is 0. Works with chars and strings. 
}
 begin
   if Pos(substring, mainstring) = 0 then
    begin
      posn := 0;
      Exit;
    end
   else
   begin
     if n = 1 then posn := Pos(substring, mainstring)
      else
     begin
       posn := Pos(substring, mainstring) + posn(substring, Copy(mainstring,
         (Pos(substring, mainstring) + 1), Length(mainstring)), n - 1);
     end;
   end;
 end;

 //Beispiele / Examples 

  i := posn('s', 'swissdelphicenter.ch', 2);
   //  i=4 



  i := posn('x', 'swissdelphicenter.ch', 1);
   //  i=0 


  i := posn('delphi', 'swissdelphicenter.ch', 1);
   //  i=6 
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay