Die Aufteilung CSV und ohne Kommas innerhalb der Elemente
Ich habe eine CSV-Zeichenfolge ein, die ich trennen möchte Sie in ein array. Aber die CSV ist eine Mischung aus strings und zahlen, wo die Zeichenfolgen sind in Anführungszeichen eingeschlossen und kann Kommas enthalten.
Ich könnte zum Beispiel über eine CSV wie folgt:
1,"Hello",2,"World",3,"Hello, World"
Ich würde es gerne, so wird die Zeichenfolge aufgeteilt in:
1
"Hello"
2
"World"
3
"Hello, World"
Wenn ich String.Split(',');
ich bekommen:
1
"Hello"
2
"World"
3
"Hello
World"
Gibt es eine einfache Möglichkeit, dies zu tun? Eine Bibliothek, die schon geschrieben oder muss ich parse den string Zeichen für Zeichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den "A Fast CSV Reader" Artikel auf Code-Projekt. Ich habe es gerne, viele Male.
String.Split() ist eklig für diese. Nicht nur, dass es böse Ecke Fällen, in denen es nicht funktioniert, wie du es gerade gefunden (und andere, die Sie noch nicht gesehen habe), aber die Leistung ist weniger als ideal. Die FastCSVReader von anderen veröffentlicht wird, gibt es eine anständige csv-parser gebaut, der in den Rahmen (Microsoft.VisualBasic.TextFieldParser), und ich habe einen einfachen parser, der verhält sich korrekt gebucht diese Frage.
Ich würde vorschlagen, mit einer der folgenden Lösungen, war einfach nur testen, ein paar von Ihnen (daher die Verzögerung):-
Hoffe, das hilft.
Es ist nicht die eleganteste Lösung, aber die Schnellste, wenn Sie wollen einfach nur schnell kopieren und einfügen von code (vermeiden, dass import-DLLs oder anderen code-Bibliotheken):