Go Down

Topic: Zahl als String aus Textfile auslesen und als Integer speichern (Read 534 times) previous topic - next topic

Metti

Hallo,

ich habe hier eine Textdatei auf einer Micro-SD-Karte in meinem Ethernet-Shield.

In der Textdatei steht zB folgendes:
Code: [Select]
0,0,2,122,0,249,41,22,22,91,0,1,13,51,2,200
Jetzt hätte ich gerne, dass diese Zahlen (denn das zwischen den Kommata soll jeweils eine Dezimalzahl darstellen) aus dem Textfile in eine Variable geschrieben werden.

Ich bastel bereits einige Stunden daran, allerdings ohne nennenswerte Fortschritte :-(

So etwa habe ich mir das vorgestellt:

Code: [Select]
char cache[3];
int test[16];

myFile = SD.open("test.txt"); // Oeffne Textfile

for(int i = 0; i < 16; i++)
{
myFile.readBytesUntil(',', cache, 3); // Lese eine Zahl ein und cache sie als String
test[i] = atoi(cache); // Schreibe die Zahl als int ins Int-Array
}
myFile.close(); // Schliesse Textfile


Wie würdet ihr dabei vorgehen?

Vielen Dank für eure Antworten
Metti

michael_x

Quote
Wie würdet ihr dabei vorgehen?

Bevor ich die SDFat Library erweitere würde ich erstmal lokal eine kleine Funktion schreiben:

byte readBytesUntil(file f, char sep, char* cache, byte size);

Verwendung:
Code: [Select]
    byte len = readBytesUntil(myFile, ',' , cache, 3); // Lese eine Zahl in den cache
    cache[len] = 0; // Endekennung
    test[i] = atoi(cache); // Schreibe die Zahl als int ins Int-Array         


Dass cache ein bisschen zu klein ist für eine 3stellige Zahl, hast du wohl schon gemerkt.

Ansonsten: Genau so kann man's machen.


Go Up