![]() |
AW: StringHelper Methode Split fehlerhaft?
Ja, wenn ich in den QuellText der Helper-Methode schauen würde :stupid:
|
AW: StringHelper Methode Split fehlerhaft?
Zitat:
Zumindest ist es das, was
Delphi-Quellcode:
zurückgibt.
'(§§")'.QuotedString('"')
|
AW: StringHelper Methode Split fehlerhaft?
|
AW: StringHelper Methode Split fehlerhaft?
Hallo Uwe,
Bei SplitString kann ich leider das Quote char nicht angeben. Somit bringt das auch nichts.
Delphi-Quellcode:
SplitString macht daraus fünf Felder anstelle von vier. Ist schon klar warum weil eben das Anführungszeichen nicht berücksichtigt werden.
Feld1 := '"F1"';
Feld2 := '"F2"'; Feld3 := '"(§§")"'; Feld4 := '"F4, F5"'; Es geht um das einlesen von CSV-Dateien Trennzeichen ist das Komma und alle Felder sind mit Anführungszeichen umschlossen. Somit erwarte ich für den String "F1","F2","(§§")","F4, F5"[CRLF] genau vier Felder 1=F1 2=F2 3=(§§") 4=F4, F5 |
AW: StringHelper Methode Split fehlerhaft?
Nein, dein Ausgangs-String ist falsch.
Delphi-Quellcode:
Falsch_ := '"F1","F2","(§§")","F4, F5"';
Richtig := '"F1","F2","(§§"")","F4, F5"'; |
AW: StringHelper Methode Split fehlerhaft?
Zitat:
Genau das sollte mein Post darlegen. Der String ist einfach nicht korrekt gequoted. Der Hinweis auf den QC-Eintrag sollte nur als Bestätigung dienen, daß es sich bei dem ersten Beispiel mit dem leeren letzten Feld vermutlich um einen Bug handelt. |
AW: StringHelper Methode Split fehlerhaft?
Ja, ich habe jetzt das Problem erkannt. Der Text kann eigentlich nicht korrekt geparst werden, auch wenn es in meiner Methode bis jetzt immer funktioniert hat.
In meiner Methode suche ich nach Anführungszeichen Komme Anführungszeichen also "," oder "[CRLF] das hat bis jetzt "zufällig" funktioniert weil ich im Text nie das "," gehabt habe. :-) Die Feldinhalte kommen eben aus einer Datenbank. Ein Anwender hat in ein Feld das (§§") eingegeben. Das Problem ist ich darf das Anführungszeichen und Komma in den Feldinhalten nicht ersetzen und ich darf es auch nicht maskieren. Es bleibt mir nur die Möglichkeit den Anwender aufzufordern das zu korrigieren. Sehr interessant, seit Delphi5 Zeiten ist bis jetzt kein Anwender auf die Idee gekommen das "," einzugeben. :-) |
AW: StringHelper Methode Split fehlerhaft?
Was hat denn das mit dem Inhalt in der Datenbank zu tun?
Wenn überhaupt wird das falsch exportiert |
AW: StringHelper Methode Split fehlerhaft?
Falsch Exportiert?
es gibt ein vorgeschriebenes Trennzeichen das Komma und jedes Feld muss mit Anführungszeichen exportiert werden. Ich darf den Inhalt des Feldes nicht anfassen. Was könne ich jetzt noch machen? [Edit] oh, es hat sich erledigt. Ich darf doch maskieren! |
AW: StringHelper Methode Split fehlerhaft?
Zitat:
In delphi wird meistens mit dem doppelten Quote-Zeichen das Zeichen selber geqoutet. Also
Delphi-Quellcode:
und in Pascal halt
"(§§"")"
Delphi-Quellcode:
.
S := 'AGB''s \ blubb';
Und genau so verhällt sich auch das Quoting der TStringList. In C-Sprachen wird dagegen gern das \ als Quotezeichen für Steuerzeichen benutzt, also
Delphi-Quellcode:
.
S := 'AGB\'s \\ blubb';
(Pascal kennt dagegen garkeine Steuerzeichen, außer dem ' oder halt ", während C auch Zeilenumbrüche ala '\n' und Co. versteht) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:30 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