Problème de remplacement de données dans un fichier texte

Bonjour,

Je suis sur un projet qui me demande d'aller modifier un fichier texte, sur carte SD, pour enregistrer la dernière configuration utilisée.

J'utilise les fonctions dédiées à la librairie SD, file.seek(), file.print(), file.position()... ou file.read(). J'ai testé indépendamment chaque fonction, elles fonctionnent bien, sauf que...

Lorsque je souhaite modifier la donnée qui m'intéresse, ma donnée est positionnée à la dernière place de mon fichier, malgré le seek() qui me positionne le curseur au bon endroit. La fonction file.read() m'a permis de m'en assurer.

Je souhaiterai savoir si quelqu'un a déjà eu ce problème. Je ne souhaite pas supprimer mon fichier avec le remove et le reconstituer mais juste le modifier.

myFile = SD.open("MyFile.txt", FILE_WRITE);
while(!myFile){}
if(myFile)
{
    myFile.seek(curseur);
    myFile.print(valASCII);
}

Ceci est la partie du code qui me pose problème. La valeur de curseur a été définie au préalable pour déterminer la position de la valeur à modifier. Le matériel utilisé est une board MKR Zero associée à une carte Mkr Eth Shd.

Oui quelqu’un a déjà eu le problème et on a fourni une réponse sur ce forum. Cherchez avec la loupe en tapant quelques mots clé

Le lien sinon FILE_WRITE contient O_APPEND

Si vous écrivez au milieu du fichier souvenez vous que ça écrase ce qu’il y avait, ce n’est pas une insertion)

Merci à force de chercher j'ai trouvé la solution tout seul.

Elle était dans le lien ci dessus :slight_smile: