Utilisation de la fonction file.seek() pour fichier config.txt sur microSD

Bonjour,

Actuellement, je dois lire et récupérer les informations présentes sur une carte SD, dans un fichier config.txt.
Jusqu'ici, aucun problème.
Après avoir récupéré les informations, je veux en prendre une (un nombre) et l'incrémenter un nombre indéfini de fois, puis la replacer sur la carte SD dans le fichier en remplaçant l'ancien.
J'ai utilisé la fonction position() et seek() mais ça ne marche pas, il n'y a aucune info sur le net.

Voici mon code :

#include <TextFinder.h>
#include <SPI.h>
#include <SD.h>

typedef struct
{
  String nom;
  String temps;
  String ip;
  String id;
  String pwd;
}machine;

String tempstotal = "";

float compteur = 0;
int pos1 = 0;
bool curs = 0;

machine m1;

File conf;

void setup() {
  Serial.begin(9600);
  pinMode(10, OUTPUT);
  digitalWrite(10,HIGH);
  int temp;
  char buff[50];
  if (!SD.begin(4)) { // Gère les erreurs
    //Serial.println("Erreur de carte SD !");
    for(;;);
    }
    
    conf=SD.open("config.txt", FILE_READ);
    TextFinder finder(conf);
    conf.seek(0);
    temp=finder.getString("[NOM]",";",buff,50);
    m1.nom=buff;
    Serial.println(m1.nom);
    temp=finder.getString("[TEMPS]",";",buff,50);
    pos1 = conf.position();
    m1.temps=buff;
    Serial.println(m1.temps);
    temp=finder.getString("[IP]",";",buff,50);
    m1.ip=buff;
    Serial.println(m1.ip);
    temp=finder.getString("[Identifiant]",";",buff,50);
    m1.id=buff;
    Serial.println(m1.id);
    temp=finder.getString("[PWD]",";",buff,50);
    m1.pwd=buff;
    Serial.println(m1.pwd);
    tempstotal = m1.temps;
   Serial.println(tempstotal);
   compteur = tempstotal.toFloat();
}

void loop() 
{
  Serial.print("Compteur : ");
  Serial.println(compteur);
  compteur++;
  Serial.print("Position : ");
  Serial.println(pos1);
  conf.seek(pos1);
  conf.print(compteur);

  delay(1000);
}

Merci.

Bonjour,

Je pense que, tant que tu ne ferme pas ton fichier par conf.close(), il n'y a pas d'écriture sur la SD.

On peut faire aussi un conf.flush() pour forcer l'écriture.