Laden...

Kann man eine CSV-Datei beim Serialisieren validieren?

Erstellt von lhyn vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.226 Views
L
lhyn Themenstarter:in
136 Beiträge seit 2015
vor 5 Jahren
Kann man eine CSV-Datei beim Serialisieren validieren?

Hallo zusammen,

Folgende CSV-Strukur:



$target: Klasse1		
$ID,Name,Surname
0x10f4,Max,Muster
0x10f5,Florin,Städler
		
$target: Klasse2		
0x001b,Selina,Marsupilami
0x0001,Sepp,Fässler
		
$target: Klasse3		
0x10f2,Corina,Ortega


Gibt es eine Möglichkeit diese CSV-Datei auf Richtigkeit zu prüfen? (validieren)
Dabei geht es mir um die Header ($ID, Name, Surname)
-> In der Vergangenheit ist es immer mal wieder vorgekommen, dass dann einfach eine Spalte mehr enthalten war, wobei ich dann die Schüler-Objekte falsch befüllt habe...

Gruss Lhyn

5.658 Beiträge seit 2006
vor 5 Jahren

Hi lhyn,

das ist keine CSV-Datei d.h. das Parsen und Validieren mußt du selbst implementieren.

Weeks of programming can save you hours of planning

L
lhyn Themenstarter:in
136 Beiträge seit 2015
vor 5 Jahren

Hallo MrSparkle,

Erstmal gratuliere zum 5000sten Beitrag heute 😁

Aus der Softwareumgebung heisst es CSV-Export...
-> Habe mich da mal schlau gemacht und hast natürlich recht, ist gem. Definition keine CSV-Datei

Angenommen ich lese das File wiefolgt ein:


IEnumerable<string[]> lines = File.ReadLines(path).Where(x => x.Contains("$") != true).Select(x => x.Split(delimiter.ToCharArray()));

Wobei man die Where-Clausel auch entfernen kann.

Wie geht man am besten eine Validierung an?
Zählt man einfach die Elemente je "line" oder geht man auch auf die Header etc. ein?

Da ist Spaghetticode vorprogrammiert 8) (mindestens bei mir)

Gruss Lhyn

T
64 Beiträge seit 2010
vor 5 Jahren

Hi,

schau dir mal das NuGet Package FileHelpers an...

klick mich

5.658 Beiträge seit 2006
vor 5 Jahren

Die Datei stellt eine hierarchische Datenstruktur da. Ich würde mir daher erstmal ein entsprechendes Datenmodell erstellen, das besteht aus "Sektionen" mit jeweils mehreren "Einträgen". Dann kannst du die Datei Zeile für Zeile auslesen, und entscheiden, ob eine neue Sektion erstellt wird, oder ob ein neuer Eintrag zur letzten Sektion hinzugefügt werden sollen. Die Validierung kannst du dann direkt beim Auslesen durchführen.

Weeks of programming can save you hours of planning