Wie teilt man eine CSV mit der C # split () -Funktion richtig auf?

9

Angenommen, ich habe diese CSV-Datei:

%Vor%

Ich möchte gerne jedes Token, das mit doppelten Anführungszeichen eingeschlossen ist, in einem Array speichern. Gibt es dafür einen Safe, anstatt die String split () - Funktion zu verwenden? Zur Zeit lade ich die Datei in eine RichTextBox und benutze dann die Eigenschaft Lines [], mache ich eine Schleife für jedes Lines [] -Element und mache das:

%Vor%

s ist ein Verweis auf RichTextBox.Lines []. Und wie Sie deutlich sehen können, kann das Komma in einem Token die Funktion split () leicht durcheinander bringen. Also, anstatt mit drei Token zu enden, wie ich es will, habe ich mit 6 Tokens geendet.

Jede Hilfe wird geschätzt!

    
swdev 20.06.2013, 07:04
quelle

3 Antworten

18

Sie könnten auch Regex verwenden:

%Vor%

Dies gibt Ihnen:

%Vor%     
unlimit 20.06.2013, 07:46
quelle
7

Ich habe das mit meiner eigenen Methode gemacht. Es zählt einfach die Anzahl der Zeichen " und ' .
Verbessere dies nach deinen Bedürfnissen.

%Vor%     
joe 20.06.2013 07:32
quelle
2

Es ist keine exakte Antwort auf Ihre Frage, aber warum verwenden Sie nicht bereits geschriebene Bibliotheken, um CSV-Dateien zu bearbeiten? Ein gutes Beispiel wäre LinqToCsv . CSV könnte mit verschiedenen Interpunktionszeichen begrenzt werden. Darüber hinaus gibt es Fehler, die bereits von Bibliotheksentwicklern angesprochen werden. B. den Umgang mit der Namenszeile, den Umgang mit verschiedenen Datumsformaten und das Zuordnen von Zeilen zu C # -Objekten.

    
0lukasz0 20.06.2013 08:02
quelle

Tags und Links