![]() |
string parsen (quotes in echte anführungszeichen tauschen)
Hallo,
mein Problem habe ich schon im Delphi-Forum gepostet. Hier der Cross-Link: ![]() Hoffe, mir hilft jemand weiter, da Parsen nicht mein Ding ist. Vielen Dank. rd3 |
Re: string parsen (quotes in echte anführungszeichen tausche
Tja, kommt drauf an. Wenn du willst, dass verschachtelte Anführungszeichen auch funktionieren, dann geht das nicht. Ansonsten... geh den String durch bis zum ersten ", ersetz es durch ein „, setz dir ein Flag, geh weiter bis zum nächsten ", ersetze es durch ” und setze das Flag zurück. Fertig ist dein Ersetzungsalgorithmus.
|
Re: string parsen (quotes in echte anführungszeichen tausche
... und falls du nicht weißt, wie man das ersetzt:
Delphi-Quellcode:
s[5]:=#0132 //nur ein Bsp. an der Stelle
|
Re: string parsen (quotes in echte anführungszeichen tausche
Hallo,
Delphi-Quellcode:
Aufruf:
Function MachMichHochkomma(s : String) : String;
var i : Integer; begin s := s + ' '; // Damit wir am Ende immer ein Blank haben. for i := 1 to Length(s) - 1 do begin Case s[i] of #32..#64 : begin // Die Liste ggfls. anpassen Case s[i + 1] of // Zeichen hinter "Nichtbuchstaben" #34 : s[i + 1] := #132; end; end; #65..#90,#97..#122 : begin // Die Liste ggfls. anpassen Case s[i + 1] of // Zeichen hinter "Buchstaben" #34 : s[i + 1] := #148; end; end; end; end; Result := s; end;
Delphi-Quellcode:
Stephan
procedure TForm1.Button1Click(Sender: TObject);
Var s : String; begin s := 'Text text "text" text text, text, text ("text") ' + 'text "text", text. ' + 'Text text "text" text text, text, text ("text") ' + 'text "text", text.'; ShowMessage(MachMichHochkomma(s)); end; PS: Ist nur so hingedaddelt, Feinheiten bitte selbst einbauen und hier zur Verfügung stellen :wink: |
Re: string parsen (quotes in echte anführungszeichen tausche
Oder so:
Delphi-Quellcode:
Wegen der expliziten Angabe der Zeichencodes funktioniert das aber nicht mehr unter Delphi 2009! Dazu müsste man die Zeichencodes der entsprechenden Unicode-Zeichen kennen.
var
I: Integer; ch: char; begin ch := #132; for I := 1 to Length(S) do if S[I] = #34 then begin S[I] := ch; ch := chr(132 + 148 - ord(ch)); end; end; |
Re: string parsen (quotes in echte anführungszeichen tausche
charmap hilft: $201D und $201E.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:38 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 by Thomas Breitkreuz