Wie trenne ich die CSV-Daten am besten?
-
Guten Morgen,
ich möchte eine CSV-Datei zerlegen um die Werte in meiner Anwendung
entsprechend verwenden zu können.Die Zeilen der Datei sehen etwa so aus (60 Felder):
1;5;abc;0;;dfg;usw.;
Ich muss also zwischen jedem Semikolon den Wert auslesen.
Ein Kollege meinte ich soll evtl. Tokenize(?) verwenden. Ist das die
sinnvollste Lösung dafür?
-
strtok?
Einfach aber nicht ganz so schnell:
http://www.mpdvc.de/html.htm#Q17
-
Ich habe eben Tokenize mal getestet und festgestellt, dass mir leere
Felder nicht angezeigt werden (diese brauche ich jedeoch ebenfalls).Eine Zeile mit folgendem Inhalt zeigt mir nur die Werte 1,2 und 5:
1;;;;;2;;5;;;
Ich komme also um eine andere Lösung nicht herum?
Werde dann wohl mit Find der CString-Klasse arbeiten müssen.
-
Hallo Martin,
habe nicht gesehen, dass du schon eine Antwort gepostet hast.
Nur zur INfo: Ich muss eine Datei mit ca. 500k bis 1 Mio Zeilen verarbeiten
-
Shoggy schrieb:
Hallo Martin,
habe nicht gesehen, dass du schon eine Antwort gepostet hast.
Nur zur INfo: Ich muss eine Datei mit ca. 500k bis 1 Mio Zeilen verarbeiten
Dann mach es amnuell. Das ist doch kein Hexenwerk...
-
Ja bin gerade dabei. Überlege nur, wie ich das Konstrukt hier
am besten in eine Schleife verpacke:CString retv; CString wert; wert ="1;;2;;;5;"; int position1 = wert.Find(';'); retv=(wert.Left(position1)); MessageBox(retv,"Test"); int position2=wert.Find(';',position1+1); retv=wert.Mid(position1+1,position2-position1-1); MessageBox(retv,"nächster Wert");Ich wollte jetzt nicht 58mal den Part für .Mid schreiben
