Config file von SD-Karte lesen

Gast #1051113
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.
Gast
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?
Gast
@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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.