Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Text ersetzen (https://www.delphipraxis.net/44440-text-ersetzen.html)

BlueStarHH 19. Apr 2005 15:20


Text ersetzen
 
Hat jemand eine Funktion die mir in einem String nach einem Char sucht und diesen durch einen anderen String ersetzt? Der Char soll nur ersetzt werden, wenn er nicht mehrmals genau hinereinander auftritt. Wenn er 2x hintereinader auftritt soll ein Char entfernt werden.

Beispiele
Replace(s, '|', #13#10)

Das ist ein Test|und das auch. --> Das ist ein Test#13#10und das auch.
Das ist ein Test||und das auch. --> Das ist ein Test|und das auch.
Das ist||ein Test|und das|||auch. --> Das ist|ein Test#13#10und das|#13#10auch.

roderich 19. Apr 2005 15:29

Re: Text ersetzen
 
ich glaube, diese Funktion selber zu schreiben hätte dich weniger Zeit gekostet als dein Beitrag.....

:gruebel:

Roderich

Jasocul 19. Apr 2005 15:32

Re: Text ersetzen
 
Die Funktion heißt StringReplace.
Guckst du hier auf meiner HP
Dann noch ein bisschen mit Pos und Delete basteln. Dann sollte das Problem behoben sein.

s14 19. Apr 2005 15:35

Re: Text ersetzen
 
@Jasocul
Das Problem ist wohl etwas komplexer.

Ich glaube das läuft auf Parsen hinaus. Zeichen für Zeichen durchsuchen und wenn Zeichen = | dann wenn Position + 1 ungleich | ist, das Zeichen mit #13#10 ersetzen :-)

Khabarakh 19. Apr 2005 16:26

Re: Text ersetzen
 
Ich würde das ja einfach so machen :gruebel: :
Delphi-Quellcode:
AnsiReplaceStr(s, '||', #255); //255 als Zwischenspeicher
AnsiReplaceStr(s, '|', #10#13);
AnsiReplaceStr(s, #255, '|');

Dax 19. Apr 2005 16:29

Re: Text ersetzen
 
Oder einfach Delphi-Referenz durchsuchenStringReplace mir [rfReplaceAll] benutzen.

alcaeus 19. Apr 2005 16:36

Re: Text ersetzen
 
Zitat:

Zitat von Dax
Oder einfach Delphi-Referenz durchsuchenStringReplace mir [rfReplaceAll] benutzen.

Nein. Er will dass der | mit | escaped wird. also | ist ein Zeilenumbruch, || ist ein einzelnes |. Khabarakhs Loesung muesste funktionieren ;)

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz