...realize a filtered substring search?

Author: Daniel Elsenhans

Category: Strings

{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Funktion zum Filtern mehrerer Substrings innerhalb eines Strings
bezüglich zweier Trennzeichen.

Aufruf:
  filterSubStr([String der durchsucht werden soll],[suchen von],[suchen bis],[wie oft durchsucht werden soll])
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Search for a substring positioned between 2 markers.

Call:
  filterSubStr([Fullstring],[first mark],[second mark],[repeated searching])
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}


function filterSubStr(tmp, von, bis: string; a: Integer): string;
var
  
SubStr, bck: string;
  Pos1, Pos2, i: Integer;
begin
  
i := 0;
  while i < a do
  begin
    
Pos1   := Pos(von, tmp);
    Pos2   := Pos(bis, tmp);
    SubStr := Copy(tmp, Pos1 + Length(von), Pos2 - Pos1 - Length(von));
    Delete(tmp, Pos1, Pos2 - Pos1 + Length(bis));
    if SubStr = '' then {nothing} 
    
else if bck = '' then
      
bck := SubStr
    else
      
bck := bck + #13#10 + SubStr;
    i := i + 1;
  end;
  Result := bck;
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base