mikrocontroller.net

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


Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: huibuh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
2)
er meint das anders

Autor: huibuh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
äh, 1)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.