[Resolu] Nom de fichier sur carte SD

Bonjour et merci à tous les contributeurs,

J'ai trouvé un bout de code pour pouvoir créer un nom de fichier en fonction de la date du jour avec un rtc. Le code fonctionne et me crée bien le fichier sur ma carte SD.

Le code :

int datafile;

DateTime now = rtc.now();
char datafile[13];
int jour = now.day();
int mois = now.month();
int annee = now.year();
sprintf(datafile,"%04d%02d%02d.txt",annee,mois,jour); // %d pour un int
datafile[13]='\0';
myFile = SD.open(datafile, FILE_WRITE);
myFile.close();

Mon soucis c'est quand je tente de ré-ouvrir le fichier pour y écrire qqchose il ne se passe rien.

J'utilise pour ré-ouvrir le fichier :

void test()
{
myFile = SD.open(datafile, FILE_WRITE);
myFile.println("test");
myFile.close();

}

et lorsque je tente un Serial.print(datafile); dans le loop, il ne m'est retourné que des 0

j'ai retiré la ligne datafile[13]='\0'; (que je ne comprend pas) et le moniteur série ne m'affiche plus d'info.

Pourriez vous m'aider à comprendre svp.

datafile ne doit pas être un entier (int), mais un tableau de caractères : char datafile[n]; n étant la longueur de la chaîne de caractères qui doit contenir vos informations de date + 1 pour le caractère nul de fin de chaîne.

Cordialement.

Pïerre

char datafile[13];
datafile[13]='\0';

char datafile[13]; est un tableau de char sur 13 octets, chaque élément du tableau est numéroté de 0 à 12

datafile[13]='\0'; est en 14eme position donc en dehors du tableau

datafile[12]='\0';

posera moins de problèmes

dans l'idéal il faudrait écrire

datafile[sizeof(datafile)-1]='\0';

Fonctionnel merci beaucoup