Go Down

Topic: string et substring (Read 670 times) previous topic - next topic

vloom

Bonjour à tous,
Je reçois par le port série une chaine du style: abc,def
Comment affecter à une variable 'freq' les caractères abc et à une autre variable 'dc' les caractères def?
J'ai injecté ça, sans trop de succès:

String carac_lus="";
int nb_carac=carac_lus.length();
int pos_sep;
String freq;
String dc;

void setup()
{
 Serial.begin(9600);
}

void loop()
{
 while (Serial.available()>0)
 {
   char carac=Serial.read();
   carac_lus += carac;
 }
 if (carac_lus.length() != nb_carac)
 {
   pos_sep = carac_lus.indexOf(',');
   freq = carac_lus.substring(1, pos_sep);
   dc = carac_lus.substring(pos_sep, nb_carac);
   Serial.print("freq: ");
   Serial.print(freq);
   Serial.print(" - dc: ");
   Serial.println(dc);
 }  
 nb_carac=carac_lus.length();
 carac_lus="";
}

Merci de votre aide.
V.

Gromain59

salut,

tu peux récupérer tes données 'abc,def' dans un buffer, puis utiliser une fonction du type sscanf:

sscanf(carac_lus, "%[^','],%s", &freq, &dc);

mais il te faut passer par des tableaux de char plutôt que le format String...

Gromain
"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
IRC: freenode #xplduino

vloom


Go Up