Autor Beitrag
Schafschaf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 63
Erhaltene Danke: 2

Windows 10
C# (VS 2015)
BeitragVerfasst: Fr 24.04.15 15:11 
Hallo,

ich habe mal wieder ein Problem.
Dabei gehts um eine Csv Datei, dich ich gerne einlesen möchte und dabei das Durchlaufen von einzelnen Zeichen vermeiden möchte.

Die Datei sieht sinngemäß so aus:

ausblenden Quelltext
1:
2:
feld;feld;feld;feld;feld;"fel;d";
feld;<linebreak>feld;feld;"fe<linebreak>ld";


Semikolons trennen die Felder und ASCII A0 (UTF8 Linebreak) trennen die Rows.
Dummerweise kommen die Semikolons und Linebreaks auch innerhalb der Felder vor, dabei sind sie aber durch "" umschlossen.
Am liebsten würde ich mit Linq sagen es soll die Split-Chars innerhalb von "" ignorieren, aber es klappt nicht.
Und auch beim Einlesen selbst kann ich nicht einfach File.ReadLine nehmen, denn der Windows Zeilenumbruch in der Datei bringt mir gar nix.
Die Datei nervt mich echt :(

Liebe Grüße,

Schafschaf
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4701
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 24.04.15 15:22 
Im Microsoft.VisualBasic Namespace gibt es den TextFieldParser der mit solchen Datenstrukturen umgehen kann. Zumindest mit CSVs und Quotings darin. Ob das auch die Zeilenumbrüche sauber drauf hat weiß ich nicht.
Schafschaf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 63
Erhaltene Danke: 2

Windows 10
C# (VS 2015)
BeitragVerfasst: Fr 24.04.15 15:54 
@Ralf Jansen
Habe ich eben mal ausprobiert, da kann ich dem die Eigenschaft "HasFieldsEnclosedInQuotes = true" mitgegeben, hat aber leider auch nix gebracht :(
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 24.04.15 17:48 
Kannst auch mal den Fast CSV Reader ausprobieren (zum Download mußt du dich bei CodeProject registrieren, falls du es noch nicht bist):
Zitat:
This reader supports fields spanning multiple lines. The only restriction is that they must be quoted, otherwise it would not be possible to distinguish between malformed data and multi-line values.