Zitat von
SirThornberry:
Dem Fragesteller ist mit den Lösungen eigentlich recht wenig geholfen. Er kann sich die Funktionen kopieren aber der Lerneffekt ist fast 0
Hast du eigentlich recht... mh... ich kommentier mal meine Methode aus:
Delphi-Quellcode:
function CountSubStr(const SubStr, InStr: string): Cardinal;
var
// aktuelle Position und Länge des Suchstrings als Cardinal
Offset, Len: Cardinal;
begin
// Länge des Suchstrings vorberechnen
Len := Length(SubStr);
// Aktuelle Position auf das erste Zeichen setzen
Offset := 1;
// Ergebnis ist erst mal 0
Result := 0;
// Block wiederholen bis (> 1 <)
repeat
// Die Position des nächsten Suchstrings merken
// PosEx fängt bei der alten Position an zu suchen
Offset := PosEx(SubStr, InStr, Offset);
// Wenn ein Suchstring gefunden wurde (Offset ist größer 0)
if Offset > 0 then
begin
// Ergebnis erhöhen
Inc(Result);
// Position um die Länge des Suchstrings erhöhen
Inc(Offset, Len);
end;
// (> 1 <) Wenn die Aktuelle Position 0 ist (d.h. es wurde kein Suchstring mehr gefunden) steige aus der Schleife aus
until Offset = 0;
end;