fichier TXT supprimer jusqu’à mon curseur

bonjour

dans mon code j'ai fichier de type csv je lis jusque la fin de la première ligne ensuite j'envoie les donnée à mon serveur et je souhaiterais supprimer ce que je viens d'envoyer mais mon code vide le fichier
pourriez vous m'aider à le corriger

File f = dir.openFile("r+");
      if (f)
      {
        while (f.available()) 
        {
          if (i<4)// lecture des 4 données separées par ";"
          { 
            tableau[i] = f.readStringUntil(';');
            i++; 
          }
          if (i==4)
          {
            tableau[i]=f.readStringUntil('\n');
            reponseHTTP = envoyerDonneesServeur(tableau);
            if (reponseHTTP==200)
            {
              /* code suppression de la ligne*/
              int pos=f.position();
              f.truncate(pos);
              f.seek(0,SeekSet);
              Serial.println(f.size());//j'affiche toujours la même taille ici 93 
              Serial.println(pos);//46
            }else if (reponseHTTP != 200)
            {
              /* code on ré-essai*/
            }
            i=0;
          }
        }
      }
    }   
    
  }

ça ne fait pas ce que vous voulez sans doute parce que truncate() coupe le fichier pour qu'il ait une longueur donnée.

par exemple si votre fichier faisait 100 octets et que vous appelez f.truncate(25); alors les 75 derniers octets du fichiers sont libérés et le fichier ne conserve que les 25 premiers octets. Si le curseur était avant 25, il reste où il est, sinon il est mis à la fin du fichier.

Il n'y a pas de moyen simple d'enlever du contenu en début de fichier, il faut recopier le fichier dans un nouveau fichier à partir de l'endroit qui vous intéresse.

Si vous avez de la place sur la SD et que vous générez vous même le fichier, conservez dans le fichier un caractère (Y/N) pour dire si cette ligne a été émise ou pas. Lors de l'émission vous changez le 'N' en 'Y' comme ça la prochaine fois que vous revenez vous savez que vous n'avez pas à la traiter.

bien sûr ça fait que le fichier grossit sans arrêt, mais vous avez un log de toutes les transactions.

merci pour l'info