Tom's Guide > Forum > Programmation > [C++] Problème de conversion (saisie d'un élément d'une énumération)

[C++] Problème de conversion (saisie d'un élément d'une énumération)

Forum Programmation : [C++] Problème de conversion (saisie d'un élément d'une énumération)

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour tous le monde,

je vous explique mon problème :

J'ai une énumération dont les éléments correspondent à des nombres hexadécimaux

Code :
  1. typedef enum {
  2.                 /**COMMANDE COTE DROIT**/
  3.                 V_R_PULSE_MOT_D = 0x00,//NAN getMoteurDroit
  4.                 V_W_INPUT_PULSE_MOT_D,//setMoteurDroit
  5.                 V_R_VITESSE_RAD_ROUE_D,//NAN getRoueDroite
  6.                 V_W_VITESSE_RAD_ROUE_D,//setRoueDroite
  7.                 V_R_REGULATION_MODE_MOT_D,//OK
  8.                 V_R_POSITION_MOT_D,//OK
  9.                 V_R_TENSION_D,//OK getTensionBatterieDroit
  10.                 /**COMMANDE COTE GAUCHE**/
  11.                 V_R_PULSE_MOT_G = 0x10,//NAN getMoteurGauche
  12.                 V_W_INPUT_PULSE_MOT_G,//setMoteurGauche
  13.                 V_R_VITESSE_RAD_ROUE_G,//NAN getRoueGauche
  14.                 V_W_VITESSE_RAD_ROUE_G,//setRoueGauche
  15.                 V_R_REGULATION_MODE_MOT_G,//OK
  16.                 V_R_POSITION_MOT_G,//OK
  17.                 V_R_TENSION_G,//OK getTensionBatterieGauche
  18.                 /**COMMANDE EVOLUEE**/
  19.                 V_R_COMMANDE_MODE_ROBOT = 0xA0,//OK
  20.                 V_W_COMMANDE_MODE_ROBOT,
  21.                 V_W_TRAJECTOIRE_LIGNE,
  22.                 V_W_TRAJECTOIRE_COURBE,
  23.                 V_W_TRAJECTOIRE_FINI,
  24.                 V_W_INIT_MODEL,
  25.                 V_R_MODEL//NAN
  26.         } V_Mode;



Je souhaite faire saisir un nombre hexadécimal à l'utilisateur et que cette saisie soit convertie directement en V_Mode mais je ne vois pas du tout comment faire...

Merci d'avance.

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Salut,

Code :
  1. Object* myValue = Enum::Parse(__typeof(V_Mode), "V_W_INPUT_PULSE_MOT_D" );



Ca devrait le faire.
http://msdn.microsoft.com/en-us/li [...] S.71).aspx

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

Déjà, pour moi, lier l'interface utilisateur avec le traitement de la donnée (je veux dire que la donnée est intégrée dans l'interface) est une erreur de programmation, alors lier l'interface avec le code source, c'est du code à jeter. :)

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

Ok merci je vais tester cela dès que possible. J'avoue ne pas comprendre la ligne que tu m'indique OmaR, je vais jeter un petit coup d'oeil sur le site histoire de voir ce que cela signifie.

Si le traitement de la données est liée à l'interface, c'est tout simplement car ce client n'est là que pour tester. Un autre groupe travaille sur un client plus élaboré et comme je suis sur le serveur, il me faut un client simple pour le tester.

Merci encore, je vous tiens au courant.


Message édité par Hyome le 27-02-2009 à 14:56:31
Répondre à Hyome

la ligne que je t'ai donné va convertir la chaine de caractères "V_W_INPUT_PULSE_MOT_D" en sa valeur correspondante dans l'énumération.

Si tu lis une variable inputString depuis la console et que tu veux la convertir, tu remplaces simplement "V_W_INPUT_PULSE_MOT_D" par inputString dans mon code et tu auras dans la variable myValue la valeur de l'énumération correspondante.

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR
Tom's Guide > Forum > Programmation > [C++] Problème de conversion (saisie d'un élément d'une énumération)
Aller à :

Il y a 1729 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens