Thema: Delphi Problem mit Pos/PosEx

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.155 Beiträge
 
Delphi 12 Athens
 
#14

AW: Problem mit Pos/PosEx

  Alt 12. Apr 2021, 08:35
Mir scheint, dass diese Zeile falsch ist.
    Pos2 := Pos(SearchTextB, stext, Pos1 + 1) + Length(SearchTextA);

Die Suche muss ab Pos1 + 1 + Length(SearchTextA) beginnen.
    Pos2 := Pos(SearchTextB, stext, Pos1 + 1 + Length(SearchTextA));

Die Längenermittlung vor den Beginn der zweiten Suche muss mit in den Funktionaufruf von Pos und nicht zum Ergebnis der zweiten Pos addiert werden.

Es ist letztlich ein Problem der Klammersetzung.
Um das genauer zu erklären,
mit Pos1+1 findet das zweite Pos/PosEx natürlich das " im ersten Suchstring,
darum muß die zweite Suche
auch hinter dem ersten Suchstring begonnen werden.

Wenn der zweite Suchstring nicht im Ersten vorkäme, ware es egal. (man könnte die zweite Suche also an der selben Position beginnen, wie die Erste, auch wenn es sinnlos wäre, aber zumindestens paar Byte Code sparen täte)
z.B. nach '"|' suchen
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (12. Apr 2021 um 09:06 Uhr)
  Mit Zitat antworten Zitat