Forum: Compiler & IDEs Config file von SD-Karte lesen


von Sascha (Gast)


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

von Stefan E. (sternst)


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.

von Klaus (Gast)


Lesenswert?

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?

von Sascha (Gast)


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

von huibuh (Gast)


Lesenswert?

2)
1
er meint das anders

von huibuh (Gast)


Lesenswert?

äh, 1)

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
Noch kein Account? Hier anmelden.