Benutzer mit den meisten Antworten
Einlesen einer CSV Datei

Frage
-
Hi,
beim Einlesen einer CSV-Datei möchte ich Zeilenumbrüche innerhalb der Felder berücksichtigten.
Ich öffne die Datei mit einem StreamReader und gehe dann mittels ReadLine():string durch. Die einzelnen Feldwerte übernehmen ich in eine Datenstruktur. Problematisch wird es, wenn die Datei Zeilenumbrüche innerhalb von Feldern enthält.
Dieses Problem ist sicherlich nicht neu. Hat jemand evtl. eine fertige "Out of the Box" Lösung bzw. kann mir jemand ein ausgetestes Verfahren nennen?
Danke
Christian
Antworten
-
Hallo Christian,
Ich habe gute Erfahrungen mit diesem CsvReader gemacht. Die Library kostet zwar was, ist aber sehr flexibel und performant. Das Feature das Dich interessiert wird so beschrieben:
"Occurrences of any character, including record end delimiters, inside text qualified fields."Aber im Grunde genommen ist es eine einfache Sache: Man liest die Datei blockweise ein und parst jeden einzelnen Block mithilfe einfachster Regeln, z.B. "Environment.NewLine ist nur dann als Datensatztrennzeichen zu werten, wenn es nicht in einem Textfeld steht"
Gruß
Marcel- Als Antwort markiert Christian315 Montag, 11. Oktober 2010 06:23
-
Hallo Christian,
dann ist folgender CSV Reader (/Writer) empfehlenswert (von Juni 2010):
[C# CSV Reader and Writer - CodeProject]
http://www.codeproject.com/KB/cs/CsvReaderAndWriter.aspx
oder auch der etwas ältere:[A Fast CSV Reader - CodeProject] (vom April 2010)
http://www.codeproject.com/KB/database/CsvReader.aspx
ciao Frank- Als Antwort markiert Christian315 Montag, 11. Oktober 2010 06:23
-
Hi Frank,
vielen Dank für Deine Hilfe!
Ich parse inzwischen auf die einzelnen Zeilen und zerpflücke diese daraufhin.
Viele Grüße
Christian
- Als Antwort markiert Christian315 Montag, 11. Oktober 2010 06:23
Alle Antworten
-
Hallo Christian
ungeprüft, aber könnte helfen:
http://www.codeproject.com/KB/database/CsvReader.aspx -
Hallo Christian,
Ich habe gute Erfahrungen mit diesem CsvReader gemacht. Die Library kostet zwar was, ist aber sehr flexibel und performant. Das Feature das Dich interessiert wird so beschrieben:
"Occurrences of any character, including record end delimiters, inside text qualified fields."Aber im Grunde genommen ist es eine einfache Sache: Man liest die Datei blockweise ein und parst jeden einzelnen Block mithilfe einfachster Regeln, z.B. "Environment.NewLine ist nur dann als Datensatztrennzeichen zu werten, wenn es nicht in einem Textfeld steht"
Gruß
Marcel- Als Antwort markiert Christian315 Montag, 11. Oktober 2010 06:23
-
Hallo Christian,
dann ist folgender CSV Reader (/Writer) empfehlenswert (von Juni 2010):
[C# CSV Reader and Writer - CodeProject]
http://www.codeproject.com/KB/cs/CsvReaderAndWriter.aspx
oder auch der etwas ältere:[A Fast CSV Reader - CodeProject] (vom April 2010)
http://www.codeproject.com/KB/database/CsvReader.aspx
ciao Frank- Als Antwort markiert Christian315 Montag, 11. Oktober 2010 06:23
-
Hi Frank,
vielen Dank für Deine Hilfe!
Ich parse inzwischen auf die einzelnen Zeilen und zerpflücke diese daraufhin.
Viele Grüße
Christian
- Als Antwort markiert Christian315 Montag, 11. Oktober 2010 06:23
-
Einen C# CSV-Parser gibt es hier: http://codekicker.de/fragen/CSV-Parser-CSharp-fuer-CSV-Dateien-und-auch-CSV-Ausgabe/581 Man sieht, es ist sehr einfach, mit C# CSV zu parsen.