Bonjour à tous,
Je butte sur une incompréhension de ma part, certainement sur le langage C++:
Après avoir chargé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
#include "FS.h"
#include <SPIFFS.h>
Je crée une routine d'écriture de fichier:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//***************** Ecriture SPIFFS **********************************
void ecritureFichier(fs::FS &fs, const char *dir, const char *message){
  sBt.printf("Ecriture du fichier: %s\r\n", dir);
  File fic = fs.open(dir, FILE_WRITE);
  if(!fic){
    sBt.println("Pas de fichier");
    return;
  }
  if(fic.print(message)){
    sBt.println("Fichier ecrit");
  } else {
    sBt.println("Erreur d'ecriture");
  }
  fic.close();
}
puis pour y accéder j'ai une autre routine:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//*************Programmation alarme journalière par bluetooth**************
void enregAlarmJour(char *al){
  if(!(al[2]==':' && al[5]=='-')){
    sBt.println(msg[3]);
    return;
  }
  hAlarmJ= (al[0]-ASCII0) * 10 + (al[1]-ASCII0);    //conversion ASCII en int
  mAlarmJ= (al[3]-ASCII0) * 10 + (al[4]-ASCII0);
  msgAlarmJ="";
  for(int i=6;i<LGMSG;i++){
    if(al[i]=='\n') break;
    msgAlarmJ += al[i];
  }
  msgAlarmJ.trim();
  char rep;
  do{
    sBt.println("Enregistrement ? O/N");
    while(!sBt.available()){}
    rep=sBt.read();
  }while(!(rep=='o' || rep=='O' || rep=='n' || rep=='N'));
  if(rep=='o' || rep=='O'){
    ecritureFichier(SPIFFS,"/AlarmJ.txt",al);
    delay(1000);
  }
}
Là j'obtiens un message positionné sur la contenu du fichier 'al' à l'appel de la procédure d'écriture:
ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
Je ne comprends pas ce message. Pourquoi dans la fonction d'écriture la variable 'message' est déclarée 'const' ?

Merci d'une aide
Michel