Hallo, ich möchte ein config file von der SD Karte auslesen... Dazu verwende ich das MikroFAT16 von Mikro-Control. Folgende Funktion liefert mir zwar die "Werte", aber sie läuft in einer endlosschleife. void get_config(char* filename) { char string[20]; myfile = fopen_(filename,'r'); if(myfile != NULL) { uart_puts("reading 'config.cfg'...\r\n"); while(fgets_(&string[0],20,myfile)) { if ((memcmp(string, "#", 1)==0) || (memcmp(string, " ", 1==0)) ; // Kommentar oder Leerzeile else if (memcmp(string,"IP:", 3)==0) { uart_puts(string); } } fclose_(myfile); uart_puts("config ende"); } } Laut Doku von Mikro-Control wartet fgets auf ein "End of File ". Muss ich dieses EOF am ende einfügen oder kann ich das auch anders lösen? Es soll lediglich einmal die Datei gelesen und relevante Werte ausgegeben werden. Wäre nett wenn mir jemand helfen könnte. Mfg Sascha
Sascha wrote: > Laut Doku von Mikro-Control wartet fgets auf ein "End of File ". Welche Doku ist das? In der, die ich auf die Schnelle gefunden habe, steht bei fgets nicht das Geringste zum Dateiende, sondern nur etwas zum Zeilenende. Was mir bei der Suche nach der Doku über den Weg gelaufen ist: > Die Aktuelle Version des MikroFat16 Dateisystems V1.27 (beta) ist > ab sofort im Downloadbereich verfügbar. > Bezogen auf die Version V1.26 wurde viele zusätzliche Funktionen > implementiert: > _feof Die Funktion _feof überprüft, ob das Ende der > Datei erreicht wurde.
1) Was ist eigentlich so schwer daran, ein [ c] [ /c] (ohne leerzeichen) um seinen code zu machen? Das ist echt grauenhaft zu lesen!!! 2) Welche Version benutzt du?
@Stefan Sorry, mein Fehler. In der Doku steht: "sobald ein Zeilenende oder die Anzahl der zu lesenden Zeichen erreicht wurde." Wie kann ich dann erreichen das die while-schleife verlassen wird? @Klaus 1) Schwer ist daran gar nichts..Da es sich aber um einige config files handelt, will ich vermeiden, das das ganze Programm sich aufhängt nur weil ein "C" irgendwo fehlt. 2) v.1.26
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.