Probleme avec instruction trim()

Probleme avec instruction trim()

Message non lude Ricky09 » Mar 1 Mai 2012 11:04

Bonjour. J'ai récupéré un programme de test pour positionner un servomoteur en fonction d'une valeur saisie dans un fenêtre Windows.
Le programme processing fonctionne sans problème mais le programme arduino ne retourne une erreur à cette ligne :

chaineReception=chaineReception.trim(); // enlève les espaces

Si je passe cette ligne en commentaire tout fonctionne....mais j'aimerais comprendre (moi qui débute) pourquoi cette instruction pose problème, car a priori la syntaxe est bonne :-(
merci pour votre aide.
Fichiers joints
pilotage_servomoteur_par_valeur_dans_fenetre_windows_version.rar
fichier du programme arduino.
(2.78 Kio) Téléchargé 91 fois
Ricky09
Avatar de l’utilisateur
Ricky09
 
Messages: 10
Inscription: Lun 23 Avr 2012 21:44

Re: Probleme avec instruction trim()

Message non lude phil » Mer 2 Mai 2012 10:24

Je connaissais pas cette fonction.

Après une lecture rapide de la doc http://arduino.cc/en/Reference/StringTrim, il semble que cette fonction ne retourne rien. La syntaxe correcte pour virer les espace de la chaine chaineReception serai donc la suivante

Code: Tout sélectionner
chaineReception.trim();
 

Dis moi si ça marche...
all your shields are belong to us...
Avatar de l’utilisateur
phil
 
Messages: 192
Inscription: Mer 7 Sep 2011 11:19

Re: Probleme avec instruction trim()

Message non lude Cassiope34 » Mer 2 Mai 2012 11:44

je crois bien que la fonction .trim() de la classe String est concernée par le passage à la version 1.0 de l'IDE Arduino : en 023 la variable elle-même n'est pas modifiée, en 1.0 elle est remplacée...
Cassiope34
 
Messages: 102
Inscription: Lun 16 Avr 2012 14:35

Re: Probleme avec instruction trim()

Message non lude phil » Mer 2 Mai 2012 13:15

En effet,

http://arduino.cc/en/Main/ReleaseNotes
The String class has been reimplemented as well, by Paul Stoffregen. This new version is more memory-efficient and robust. Some functions which previously returned new string instances (e.g. trim() and toUpperCase()) have been changed to instead modify strings in place.


donc Version antérieure à la version 1.0 de l'IDE Arduino ==> chaineReception=chaineReception.trim(); // enlève les espaces
A partir de la version 1.0 de l'IDE Arduino ==> chaineReception.trim(); // enlève les espaces
all your shields are belong to us...
Avatar de l’utilisateur
phil
 
Messages: 192
Inscription: Mer 7 Sep 2011 11:19

Re: Probleme avec instruction trim()

Message non lude Ricky09 » Mer 16 Mai 2012 17:53

Merci a tous pour vos réponses.
Maintenant j'ai compris l'origine du problème, la bonne syntaxe c'est bien : chaineReception.trim();
Ricky09
Avatar de l’utilisateur
Ricky09
 
Messages: 10
Inscription: Lun 23 Avr 2012 21:44


Retourner vers Logiciel Arduino

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

cron