Zitat von
smudo:
CSV ohne Quotes sollte man deshalb auch niemals verwenden.
Das erzähle dann bitte mal Excel.
Und so steht das z.B. auch nicht in Wikipedia.
Aber bezogen auf Delphi würde ich dir das sofort unterschreiben.
Excel jedenfalls (be)schreibt eine Zelle
nur dann in einschließenden Quotes, wenn das Trennzeichen oder das Quotezeichen selbst in der Zelle vorkommt. Leerzeichen nimmt Excel so, wie sie in der Tabelle stehen. Sie sind für Excel einfach nur ein Zeichen ohne weitere Bedeutung - ganz im Gegenteil zu DelimiterText.
Das Problem ist ganz einfach:
CSV ist nicht genormt.
Ich behaupte jedoch, dass die meisten
CSV-Dateien auf der Welt deshalb existieren, weil es Excel gibt. Die meisten
CSV-Dateien werden also von Excel erzeugt oder von ihm eingelesen. Aus diesem Grund empfinde ich den Excel-
CSV-Aufbau als Quasi-Standard und richte all mein "
CSV-Tun-und-Lassen" darauf hin aus. Daher verbietet sich mir die Benutzung von DelimiterText.
((Anmerkung: Wie Delphi (zumindest D7) das Leerzeichen behandelt, steht in der Hilfe unter TStrings.CommaText. Bei TString.DelimiterText schweigen sie sich dazu leider völlig aus.))
Okay, den "
CSV-Neulingen" hier möge unsere kleine Diskussion etwas gebracht haben ...