Go Down

Topic: Von SD eine TXT einlesen mit einem Wert (Read 407 times) previous topic - next topic

Hallo,

ich rufe mit
Code: [Select]

float raum2_temp = readIntFromFile("r2temp.txt");


die Funktion:

Code: [Select]
static const int BUFSIZE=50;
static char buffer[BUFSIZE];


float readIntFromFile(const char* filename)
{
 int pos=0;
 myFile = SD.open(filename);
 if (myFile) {
   // read from the file until there's nothing else in it:
   while (myFile.available() && pos < (BUFSIZE-1)) {
     buffer[pos++] = myFile.read();
   }
   myFile.close();
   buffer[pos]=0; // EndeKennung
   return (atoi(buffer));

 }

 return 0; // Fehler: Datei nicht gefunden
}


auf, hab aber das Problem das in der r2temp.txt eine Zahl mit Kommastele steht z.B. 19,25
Die Funktion gibt mir immer nur den Teil vor der Kommastelle wieder.
Kann mir jemand helfen ?

Vielen Dank

Gruß
Jens

jurs


   return (atoi(buffer));
...
Die Funktion gibt mir immer nur den Teil vor der Kommastelle wieder.


Klar: Wenn Du die Array-to-Integer (atoi) Funktion aufrufst, dann liefert diese Funktion immer einen Integer-Wert zurück.

Wenn es anders wäre, dann wäre das für eine "to integer" Umwandlungsfunktion auch etwas merkwürdig, oder?

Hallo jurs,

danke für den Tipp .... manchmal ist man echt blind als Newbie :(

"atof" hat das Problem gelöst ^^

Gruß
jens

Go Up