ich würde gern eine Zeichenfolge nach einer anderen Zeichenfolge durchsuchen und das Vorkommen zurückgeben lassen.
Allerdings möchte ich ab einer bestimmten Position mit der Suche beginnen oder auch in umgekehrter Richtung, also vom Ende her suchen.
Code: Alles auswählen
IndexOf(3, 'lazarus', 'a'); // =4
LastIndexOf(3, 'lazarus', 'a'); // =2
Ich könnte die Funktionen zwar selbst erstellen, aber das Einzige was mir dazu einfällt wäre folgende Implementierung:
Code: Alles auswählen
function IndexOf(const Start: Integer; const S, SubStr: String): Integer;
var
I, Len, SubLen: Integer;
begin
Result := 0;
Len := UTF8Length(S);
SubLen := UTF8Length(SubStr);
for I := Start to Len - SubLen + 1 do
begin
if UTF8Copy(S, I, SubLen) = SubStr then
begin
Result := I;
Break;
end;
end;
end;
Daher meine Frage: Gibt es eine Implementierung, mit deren Hilfe ich die genannten Aufgaben schnell und effektiv erledigen kann? Existiert dazu eventuell eine gesonderte Bibliothek mit erweiterten Zeichenkettenfunktionen?
Vielen Dank schonmal