Partage
  • Partager sur Facebook
  • Partager sur Twitter

'class String' has no member named 'readStringUnti

    17 juin 2019 à 9:51:36

    Bonjour,

    Je rencontre un problème avec ce message d'erreur : 'class String' has no member named 'readStringUntil'. Après de longue recherche sur le net et j'ai cru comprendre qu'il s'agissait d'un problème de mise à jour de mes librairies mais sans plus. S'il s'agit bien de ce problème pourriez vous m'indiquer la démarche à suivre afin de mettre à jour mes librairies.

    #include <BufferedPrint.h>
    #include <ChunkedPrint.h>
    #include <CStringBuilder.h>
    #include <FormattedPrint.h>
    #include <StreamLib.h>
    #include <SPI.h>
    #include <SD.h>
    
    File myFile;
    int immat = 2;
    int nbpers = 2;
    int pinBoutonp;
    int pinBoutonb;
    String vmin;
    String vopt;
    String vmax;
    String retour;
    
    
    
        String lecture (int immat_recu){
       // if(immat == immat_recu){
      myFile = SD.open("K13_1P.TXT");
            if (myFile) {
              retour = myFile.read();
              int repere1 = retour.indexOf("$");
              int repere2 = retour.indexOf("$",repere1+1);
              vmin = (retour.substring(0,repere1));
              vopt = retour.substring(repere1+1,repere2);
              vmax = retour.substring(repere2);
              String vtest = retour.readStringUntil("!");
              //a = vmin.toInt;
    
              Serial.print(vmin);
              Serial.print(vopt);
              Serial.print(vmax);
                /*String vmin = myFile.readStringUntil('$');
                Serial.println(vmin.toInt());
                int */
            }
      //}
    
    return(vmin);
    }
    
    
    
    void setup() {
      Serial.begin(9600);
    
      pinBoutonp = 7;
      pinBoutonb = 8;
    
      pinMode(pinBoutonp, INPUT);
      pinMode(pinBoutonb, INPUT);
    
    
    } 
    
    void loop() {
    
    lecture(2);
    Serial.println(vmin);
      // Code réception trame (immat+vitesse air)
    
      //Code découpage de la chaîne
      
    }



    • Partager sur Facebook
    • Partager sur Twitter
      17 juin 2019 à 10:11:03

      readStringUntil est une méthode (*) de Stream, pas de String.

      (*) Pardon, une fonction membre.

      -
      Edité par michelbillaud 17 juin 2019 à 10:12:41

      • Partager sur Facebook
      • Partager sur Twitter
        17 juin 2019 à 10:20:31

        Merci de votre réponse rapide, cependant les données que je récupère dans le moniteur série ne sont-ils pas des strings ? C'est la raison pour laquelle j'utilise la fonction toInt() pour les récupérer en Integer.

        • Partager sur Facebook
        • Partager sur Twitter
          17 juin 2019 à 10:32:37

          Je crois ce que je vois

          String retour;
          ...
          String vtest = retour.readStringUntil("!");


          retour est un String, par un Stream. D'où message d'erreur.

          • Partager sur Facebook
          • Partager sur Twitter
            17 juin 2019 à 10:38:09

            Très bien merci !

            Comment dois-je donc déclarer mes variables ? Merci de vos réponses.

            • Partager sur Facebook
            • Partager sur Twitter
              17 juin 2019 à 11:14:18

              La question n'est pas de déclarer les variables, mais d'abord de savoir ce qu'on veut faire.

              A partir de la chaine retour et du point d'exclamation, qu'est-ce qu'on veut obtenir ?

              -
              Edité par michelbillaud 17 juin 2019 à 11:19:04

              • Partager sur Facebook
              • Partager sur Twitter
                17 juin 2019 à 11:26:08

                En fait, les ! fonctionnement comme des séparateur, chaque valeur que je veux extraire de mon fichier sont séparés par des "!" et donc j'utilise readStringUntil('!');
                • Partager sur Facebook
                • Partager sur Twitter
                  17 juin 2019 à 12:13:52

                  Si il faut extraire depuis le fichier (myFile ?), c'est

                  String vtest = myFile.readStringUntil("!");
                  //             ^^^^^^
                  



                  -
                  Edité par michelbillaud 17 juin 2019 à 12:14:07

                  • Partager sur Facebook
                  • Partager sur Twitter

                  'class String' has no member named 'readStringUnti

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown