Thema: Delphi Stringroutine gesucht

Einzelnen Beitrag anzeigen

Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Stringroutine gesucht

  Alt 17. Mär 2006, 17:39
Wobei du dir sowas auch sehr einfach selbst bauen kannst.

in speziel deinem Fall macht es keinen sinn da du ja echt nur Extractfilepath brauchst.

Generell ist ein Pos aber nicht schwer zu implementieren.

Versuche das hier grad mal.

Delphi-Quellcode:

Function PosRueckwaerts(Const Substring, s: String): integer;
Var
  x, y: Integer;
  b: boolean;
Begin
  result := 0; // Falls wir den Substring gar nicht finden
  If Length(s) <> 0 Then // Standart Fehler Abfangen
    If Length(Substring) <> 0 Then // Standart Fehler Abfangen
      If Length(s) >= length(substring) Then Begin // Standart Fehler Abfangen
        x := length(s) - Length(substring) + 1; // Die MAximal hinterste Position in s berechnen
        While x > 0 Do Begin // Wir suchen erst mal nur nach den 1. Zeichen ob die stimmen
          If s[x] = Substring[1] Then Begin // Wenn die Stimmen dann schauen wir nach ob der Rest stimmt
            b := true; // initialisieren
            y := 2; // Wir haben das 1. Zeichen schon verglichen, deswegen braucehn wir erst mit 2 beginnen
            While (y <= Length(Substring)) And (b) Do Begin // Wenn wir wissen das es nicht mehr passt können wir abbrechen
              If s[x + y - 1] <> Substring[y] Then b := false;// Feststellen ob es passt
              inc(y);// Weiterzählen nicht vergessen
            End;
            If b Then Begin// Wenn wir die Position gefunden haben brechen wir alles ab.
              result := x;
              exit;
            End;
          End;
          dec(x);// Weiterzählen nicht vergessen.
        End;
      End;
End;

Procedure TForm1.Button1Click(Sender: TObject);
Begin
  showmessage(inttostr(PosRueckwaerts('l', 'Hallo Welt')));
End;
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat