CSV-Datei lesen und in anderer Format(ierung) ausgeben
-
Hallo Kollgen,
ich beschreibe mein Problem erst mal kurz allgemein:
Ich möchte eine einzelne CSV-Datei lesen und den Inhalt in zwei Ausgabedateien, mit jeweils anderer Formatierung und Informationsgehalt wieder ausgeben.
Nebenbedingungen:
Das Programm muss später so ausgelegt sein das es CSV-Dateien mit verschiedenen Spalten und Zeilenanzahl Händeln kann.
Meine CSV-Datei besitzt immer einen Header (Spaltenüberschriften).Beispielhafte CSV-Datei:
Index;1#I [mA];2#I [mA] 0;-5.598829997;16.11789035 1;-6.464529004;16.15676469 2;-7.3289005;16.15664972 3;-8.15512162;16.1055859 4;-8.989964346;16.02810204 5;-9.792971332;15.91603248 6;-10.57633566;15.76240482 7;-11.34256758;15.58426151 8;-12.08163658;15.36207404 9;-12.78981106;15.11913797 10;-13.45453543;14.83641459 11;-14.07102795;14.53418274Als Ergebnis möchte ich in Ausgabedatei 1 das alle Überschriften und die jeweilige Zeilenanzahl untereinander stehen:
Index; 12 1#I [mA]; 12 2#I [mA]; 12Der in meinen Augen schwierigere Part ist die gewünschte Ausgabe der zweiten Ausgabedatei.
In der Ausgabedatei 2 möchte ich das alle Spaltenwerte (ohne Header) nacheinander ausgegeben werden. Siehe Beispiel:0 1 2 3 4 5 6 7 8 9 10 11 -5.598829997 -6.464529004 -7.3289005 -8.15512162 -8.989964346 -9.792971332 -10.57633566 -11.34256758 -12.08163658 -12.78981106 -13.45453543 -14.07102795 16.11789035 16.15676469 16.15664972 16.1055859 16.02810204 15.91603248 15.76240482 15.58426151 15.36207404 15.11913797 14.83641459 14.53418274Kann mir jemand konkret weiterhelfen!?
Meine Schwierigkeiten habe ich vor allem damit die Datei einzulesen und in eine Struktur bringen die es mir erlaubt die einzelnen Spalten auszugeben.
(Ich bin was C angeht leider ein newbie
)Alternative Frage:
Kann mir jemand eine gute Bibliothek empfehlen die sich mit CSV Dateien beschäftigt.
Ich habe es mit libcsv versucht. Meine Ergebnisse waren aber nicht zufriedenstellend.
Vielen Dank im Voraus für eure Mühen!
goehte
-
Ich habe es mit libcsv versucht. Meine Ergebnisse waren aber nicht zufriedenstellend.

Docs zu kompliziert?Schema zum Selberbauen:
1.) Wenn du feste Feld-Breiten hast, ist alles recht einfach, weil du
feste Puffergrößen für die Strings wählen kannst.
Wenn nicht, lass dir was einfallen.2.) Wenn du keine Leerzeichen in den Feldern hast (da kommen dann auf einmal
Quotes in den Files vor), dann kannst du einfach bis zum nächsten Trennzeichen
in einen Puffer lesen.3.) Wenn 1.) und 2.) gelöst sind, mach dir eine Struktur, die eine Zeile repräsentiert.
Da drinnen kannst du dann deine Puffer organisieren.
Einfach verlinken sollte reichen.4.) Deine Ausgaben kannst du dann in einer Iteration über die Strukturen zusammenbauen.