Einzelnen Beitrag anzeigen

Phistev
(Gast)

n/a Beiträge
 
#29

Re: StringReplace und seine Tücken

  Alt 8. Dez 2005, 11:20
Zitat von Brüggendiek:
Hallo Catbytes!

Bei solchen Problemen ist es eine gute Idee, das "kritische" Zeichen (hier '&') bei den Ersetzungen durch ein garantiert nicht im String vorkommendes Zeichen (z.B. #02) zu ersetzen. Dann kommt kein '&' in den Text, das nicht umgesetzt werden muß. Als letzte Aktion ersetzt Du dann das Hilfszeichen durch das '&'.

Ansonsten geht nur der Weg, den Text zeichenweise durchzugehen. Dazu sollte man den String zweimal durchgehen: erst ermittelt und summiert man für jedes Zeichen die Länge im Ergebnis, setzt dann den Ausgabestring auf diese Summe und kopiert zeichenweise das Zeichen bzw. den Ersatzstring.
Bitte nicht den Ergebnisstring durch Verketten erzeugen - die ständige Umkopiererei frißt gewaltig Speicher.

Gruß

Dietmar Brüggendiek
Man kann auch StringReplace verwenden. Am Ende muss man einfach nur memo2.lines.text := StringReplace(memo1.lines.text,'& # 3 8 & # 5 9 ;','& # 3 8 ;',[rfReplaceAll]); oder eine (oder mehrere) ähnliche Zeile(n) benutzen, also die falschen Kombinationen wieder ersetzen. (Leerzeichen wie gehabt)
  Mit Zitat antworten Zitat