13.12 Arrays in Tabellenkalkulation einlesen (*.CSV–Dateien)
Kommaseparate Werte (CSV, engl. comma seperate value) lassen sich sehr gut mithilfe von Arrays erstellen. Ich möchte Ihnen ein kurzes Beispiel zeigen, wie mehrdimensionale Arrays in einer Tabellenkalkulation wie »Excel« oder »Kspread« eingelesen werden. 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 es in der Kommandozeile mit:
programmname > november.csv
Damit wird die Ausgabe des Programms programmname in eine Datei namens november.csv, welche auch gleich neu erstellt wird, umgeleitet. 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:
Hier klicken, um das Bild zu Vergrößern
Abbildung 13.11
CSV-Datei, mit Excel geöffnet
Dieses Thema wird nochmals ausführlicher in Kapitel 18, Ein-/Ausgabe-Funktionen, behandelt.
|