Config file von SD-Karte lesen

Gast #1051113
Lesenswert?

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
#1051166
Lesenswert?

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.
Gast #1051385
Lesenswert?

@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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren