Einzelnen Beitrag anzeigen

Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#21

Re: Wie oft ist ein Zeichen in einem String

  Alt 25. Jan 2007, 21:07
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;
  Mit Zitat antworten Zitat