CSV -> CommaText
-
Hi,
ich habe eine CSV Datei, aus der ich Zeile für Zeile lesen möchte. Dies stellt kein Problem dar. Nun möchte ich aber jede einzelne Zeile in einen CommaText umwandeln (Die CommaText Eigenschaft einer StringList), damit ich danach ohne Probleme in einer StringList auf jedes Element zugreifen kann.
Leider habe ich es bisher nicht geschaft das CSV umzuwandeln. Einfach jedes ; in ein , umzuwandeln funktioniert leider nicht. Dies hatte ich hier irgendwo wo mal im Forum gelesen.
Gruß Mike
-
Mike Moormann schrieb:
Einfach jedes ; in ein , umzuwandeln funktioniert leider nicht.
"Funktioniert nicht" ist keine ausreichende Fehlermeldung bzw. Problembeschreibung.
Wenn du den BCB6 verwendest kannst du statt CommaText auch DelimitedText und Delimiter benutzen.
-
Hi,
es kommt keine Fehlermeldung, aber wenn das CSV so ausschaut:
13509,82;"Hamburg";13,23;"Berlin"
Es handelt sich hier um 4 Einträge
13509,82
Hamburg
13.23
BerlinWenn ich jetzt jedes Komma durch ein Semikolon ersetzehabe ich:
13509;82;"Hamburg";13;23;"Berlin"
Nun habe ich folgende Einträge:
13509
82
Hamburg
13
23
BerlinAus diesem Grund reicht einfach das ersetzen nicht, da meine Daten so vorliegen wie das Beispiel ist.
Ich habe leider nur den BCB 5.
Grüße Mike
-
Ungetestet:
Text = StringReplace(Text, ";", "\",\""; TReplaceFlags() << rfReplaceAll); Text = "\"" + Text + "\""; List-CommaText = Text;
-
Gemäss CSV-File-Spezifikation ist das Dezimaltrennzeichen sowieso ein '.'. Entsprechend liegt offensichtlich kein gültiges CSV-File vor. Lässt sich das allerdings nciht korrigieren, so wäre es doch ein guter Zeitpunkt, bevor man die Zeile CommaText tauglich macht (Stringreplace von ';' durch ','), den DecimalSeperator ind er Zeile zu korrigieren?
-
HI,
bei mir sieht eine CSV Zeile nach diesem Muster aus:
12585,44;"EUR";"";"";"Irgendeine Firma";0;-976,86;-176,26;"EUR";-176,26;"EUR";77;"SB-UEBERWEISUNG,TAN=848259";"VOM 5.12.2003 15.25 UHR";"Irgendeine Firma";"KTO 000xxxxxxxx BLZ xxxxxxxx";"RECHNUNGSNR 4276";"KDNR. 15";"";"";"";"";"";"";"";"";5.12.2003;5.12.2003;"9232415";"";""
Wenn es genauer interessiert, es ist der Export aus Starmoney.
Ich bin nun wie folg umgegangen. Ich habe jedes ; so umgeändert, das das Zeichen davor und das Zeichen danach IMMER ein " ist. Nun habe ich ; durch ein , ersetzt. SO funktioniert es Prima. Nur wenn jemand im Namen oder in einem anderen Feld ein ; eingeben würde, würde mein Programm falsch gehen. Aber vielleicht kommt ja noch eine Idee.
Mike