Hallo!
Ich habe gestern schon einmal geschrieben wie ich einen bestimmten String aus einer CSV Datei auslesen kann. Ihr habt mir auch geholfen und es funktioniert auch einwandfrei. Es gibt nur 2 kleine Problemchen
1. Beim Auslesen der Strings "verschluckt" er mir immer die letzte Zeile. Der String der letzten Zeile wird also nicht ausgegeben. Wie kann ich das ändern?
2. Wenn zwischen den beiden Kommas, aus denen mein Programm den String auslesen soll kein Wert steht, dann liest er einfach solange weiter bis wieder ein Wert kommt und gibt mir dann diesen aus. Leider ist das dann der falsche. Wie kann ich dieses Problem lösen? (Die Datei schaut so aus: aa,bb,cc,,,dd,ee ->also ohne Leerzeichen zwischen den leeren Kommas)
Hier mal der Code:
Die zweite Datei (super.txt) benutze ich nur, um zu sehen wieviele Zeilen er mir ausgibt und was er mir alles ausgibt. Ich hoffe ihr könnt mir helfen! Danke schon mal!
Ich habe gestern schon einmal geschrieben wie ich einen bestimmten String aus einer CSV Datei auslesen kann. Ihr habt mir auch geholfen und es funktioniert auch einwandfrei. Es gibt nur 2 kleine Problemchen

1. Beim Auslesen der Strings "verschluckt" er mir immer die letzte Zeile. Der String der letzten Zeile wird also nicht ausgegeben. Wie kann ich das ändern?
2. Wenn zwischen den beiden Kommas, aus denen mein Programm den String auslesen soll kein Wert steht, dann liest er einfach solange weiter bis wieder ein Wert kommt und gibt mir dann diesen aus. Leider ist das dann der falsche. Wie kann ich dieses Problem lösen? (Die Datei schaut so aus: aa,bb,cc,,,dd,ee ->also ohne Leerzeichen zwischen den leeren Kommas)
Hier mal der Code:
Code:
void datei_ausgeben(FILE *datei) {
/*Variablen*/
int i;
FILE *super;
char *word = NULL;
char buffer[LINE_SIZE];
char *gelesene_Kommas = ",";
super = fopen("/home/tracer/wlan_DB/alert_files/super.txt", "wt");
/*Datei zum Lesen oeffnen*/
datei = fopen("/home/tracer/wlan_DB/alert_files/test.txt", "rt");
if (datei == NULL) {
fprintf(stderr, "Fehler beim Oeffnen der Datei zum Auslesen!\n");
exit(EXIT_FAILURE);
}
/*Jede Zeile durchgehen und immer den String einlesen der nach i = ? kommt*/
while(fgets(buffer, LINE_SIZE, datei) != NULL) {
word = strtok(buffer, gelesene_Kommas);
for(i = 0; word != NULL; i++) {
if (i == 0) {
fprintf(super, "%s\n", word);
break;
}
word = strtok(NULL, gelesene_Kommas);
}
}
/*Datei schliessen*/
fclose(datei);
fclose(super);
}
Die zweite Datei (super.txt) benutze ich nur, um zu sehen wieviele Zeilen er mir ausgibt und was er mir alles ausgibt. Ich hoffe ihr könnt mir helfen! Danke schon mal!
Zuletzt bearbeitet: