ButterBrot
Member
Huhu,
ich weiss hier ist kein offizielles Programmierforum für Fragen beliebiger Art. Aber ich weiss auch, dass hier viele Meister der C-Sprache sind.
Also ich versuche eine csv Datei, die ich mit einem Progamm schreibe, einzulesen. D.h. ich kenne das Format und es wird keine Abweichungen geben.
Das Format soll so aussehen:
TEXT;TEXT1;TEXT3
TEXT1;TEXT2;TEXT3;
Also es soll Zeile für Zeile ausgelesen werden und dann Spalte für Spalte. Funktioniert auch soweit mit strcpy, aber wenn es eine Spalte gibt die keinen Wert hat, dann knallt mein Konzept logischer weise, da ja ein X;;X wie ein X;X ausgwertet wird, wenn ich strcpy benutze.
Gibt es da eine besser Methode? Ich habe versucht zu googeln, aber ich finde nichts.
Eine Datei könnte wie folgt aussehen:
Heidetau;Immer öfter; Ba
Karl;;Aga
Bert;Honululu;Spanien
cDelim ist ein ";" (also Semikolon)
cStream ist die aktuelle Zeile
Würde mich über jeden Tipp freuen. :-(
ich weiss hier ist kein offizielles Programmierforum für Fragen beliebiger Art. Aber ich weiss auch, dass hier viele Meister der C-Sprache sind.
Also ich versuche eine csv Datei, die ich mit einem Progamm schreibe, einzulesen. D.h. ich kenne das Format und es wird keine Abweichungen geben.
Das Format soll so aussehen:
TEXT;TEXT1;TEXT3
TEXT1;TEXT2;TEXT3;
Also es soll Zeile für Zeile ausgelesen werden und dann Spalte für Spalte. Funktioniert auch soweit mit strcpy, aber wenn es eine Spalte gibt die keinen Wert hat, dann knallt mein Konzept logischer weise, da ja ein X;;X wie ein X;X ausgwertet wird, wenn ich strcpy benutze.
Gibt es da eine besser Methode? Ich habe versucht zu googeln, aber ich finde nichts.
Eine Datei könnte wie folgt aussehen:
Heidetau;Immer öfter; Ba
Karl;;Aga
Bert;Honululu;Spanien
cDelim ist ein ";" (also Semikolon)
cStream ist die aktuelle Zeile
Code:
void parse( char *cStream, char *cDelim, char cArr[][MAXFLDSIZE],int *iFldcount) {
char*x=strtok(cStream,cDelim);
int iFld=0;
while(x){
strcpy(cArr[iFld],x);
iFld++;
x=strtok(NULL,cDelim);
}
*iFldcount=iFld;
}
Würde mich über jeden Tipp freuen. :-(