11.10 Arrays in Tabellenkalkulation einlesen (*.CSV–Dateien)
Kommaseparate Werte (CSV, engl. comma separate values) lassen sich sehr gut mithilfe von Arrays erstellen. Ich möchte Ihnen ein kurzes Beispiel dafür zeigen, wie mehrdimensionale Arrays in einer Tabellenkalkulation wie »Excel« oder »Kspread« eingelesen werden. Betrachten wir zuerst ein kleines Programm, das einen beliebigen Aktienstand der letzten vier Wochen bereitstellt:
/* md_array4.c */ #include <stdio.h> #include <stdlib.h> #define WOCHEN 4 #define TAGE 7 float stand[WOCHEN][TAGE] = { { 12.3f,13.8f,14.1f,12.2f,15.4f,16.5f,14.3f }, { 15.4f,13.6f,13.6f,14.6f,15.6f,16.3f,19.5f }, { 20.5f,20.4f,21.5f,23.4f,21.4f,23.5f,25.7f }, { 25.5f,26.6f,24.3f,26.5f,26.9f,23.6f,25.4f } }; int main(void) { int i, j; printf("Tag;Montag;Dienstag;Mittwoch;Donnerstag; " "Freitag;Samstag;Sonntag"); for(i=0; i < WOCHEN; i++) { printf("\nWoche%d;",i); for(j=0;j < TAGE; j++) { printf("%.2f;",stand[i][j]); } } return EXIT_SUCCESS; }
Die Kommata zwischen den einzelnen Elementen des Feldes stand sind wichtig für CSV-Dateien. Kompilieren Sie das Programm, und starten Sie es in der Kommandozeile mit:
programmname > november.csv
Damit wird die Ausgabe des Programms programmname in eine Datei namens november.csv umgeleitet, die auch gleich neu erstellt wird. Jetzt befindet sich im Verzeichnis eine CSV-Datei mit dem Namen november.csv und folgendem Inhalt:
Tag;Montag;Dienstag;Mittwoch;Donnerstag;Freitag;Samstag;Sonntag Woche0;12.30;13.80;14.10;12.20;15.40;16.50;14.30; Woche1;15.40;13.60;13.60;14.60;15.60;16.30;19.50; Woche2;20.50;20.40;21.50;23.40;21.40;23.50;25.70; Woche3;25.50;26.60;24.30;26.50;26.90;23.60;25.40;
Starten Sie ein Tabellenkalkulationsprogramm wie Excel oder KSpread, und öffnen Sie die CSV-Datei damit. Die eingelesenen Werte sehen in Excel beispielsweise so aus, wie in Abbildung 11.11 gezeigt.
Abbildung 11.11 Eine CSV-Datei, mit Excel geöffnet
Dieses Thema wird nochmals ausführlicher in Kapitel 16, »Ein-/Ausgabe-Funktionen«, behandelt.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.