AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi StrRScan auch mit String, nicht nur mit Char
Thema durchsuchen
Ansicht
Themen-Optionen

StrRScan auch mit String, nicht nur mit Char

Ein Thema von n0b0dy · begonnen am 15. Sep 2005 · letzter Beitrag vom 15. Sep 2005
Antwort Antwort
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#1

StrRScan auch mit String, nicht nur mit Char

  Alt 15. Sep 2005, 00:44
guten abend.

ich suche eine funktion wie StrRScan mit der ich alles was in einem Substr in einem String kommt anzeigt.

also StrRScan zeigt ja alles, nach dem letzten vorkommen eines ZEICHENS in einem String. und ich möchte also statt dem zeichen einen String angeben könnne.

gibts auch auch eine Funktion?
  Mit Zitat antworten Zitat
Benutzerbild von Grishnak
Grishnak

Registriert seit: 15. Sep 2005
Ort: Neu-Ulm
111 Beiträge
 
RAD-Studio 2009 Arc
 
#2

Re: StrRScan auch mit String, nicht nur mit Char

  Alt 15. Sep 2005, 02:02
Delphi-Quellcode:
function StrRScanS(const S: string; const sub: string): integer;
var
  p, c: integer;
begin
  Result:=-1;

  p:=Length(s)-Length(sub)+1;
  if p > 0
    then
      repeat
        c:=1;
        while (sub[c] = s[p+c-1]) and (c <= Length(sub)) do Inc(c);
        if c = Length(sub)+1 then Result:=p;

        Dec(p);
      until (p = 0) or (Result > -1);
end;
Mach' etwas idiotensicher und irgendjemand erfindet einen besseren Idioten!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: StrRScan auch mit String, nicht nur mit Char

  Alt 15. Sep 2005, 07:40
Oder so:

Delphi-Quellcode:
function RPos(const subStr, s: string): integer;
var
  index: integer;
begin
  Result := Pos(subStr, s);
  while Result <> 0 do begin
    // index := StrUtils.PosEx(subStr, s, Result + Length(subStr)); // fehlerhaft
    index := StrUtils.PosEx(subStr, s, Succ(Result));
    if index = 0
      then Break
      else Result := index;
  end;
end;
Grüße vom marabu

Fehler im Code berichtigt
  Mit Zitat antworten Zitat
Benutzerbild von Grishnak
Grishnak

Registriert seit: 15. Sep 2005
Ort: Neu-Ulm
111 Beiträge
 
RAD-Studio 2009 Arc
 
#4

Re: StrRScan auch mit String, nicht nur mit Char

  Alt 15. Sep 2005, 07:48
Die Idee von marabu hatte ich auch erst, aber leider hat der Algorithmus einen Fehler!
Er liefert für den Suchstring 'eiei' im String 'dreieieierlei' das Ergebnis 3, richtig aber wäre 5!
Mach' etwas idiotensicher und irgendjemand erfindet einen besseren Idioten!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: StrRScan auch mit String, nicht nur mit Char

  Alt 15. Sep 2005, 08:03
Da hast du recht, Grishnak. Ich mache eine kleine Änderung, die die Performanz verringert, aber diesen Fehler beseitigt.

Herzlichen Dank für deinen akribischen Test.

marabu
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#6

Re: StrRScan auch mit String, nicht nur mit Char

  Alt 15. Sep 2005, 09:27
das ist zwar anders als StrRScan, weil StrRScan einen String zurückliefert, aber das ist nicht weiter schlimm. das krieg ich dann schon hin

also vielen dank!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz