IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

casting string en enum�ration C++


Sujet :

C++

  1. #1
    Membre confirm�
    Inscrit en
    Juin 2007
    Messages
    161
    D�tails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 161
    Par d�faut casting string en enum�ration C++
    Bonjour � tous,

    Je travaille avec VS.Net 2003.

    Je d�veloppe un projet c++.

    J'ai un fichier .txt qui contient toutes les constantes utilis�es dans mon projet. Toutes les constantes sont consid�r�es de type string.
    Il contient la constante suivante:

    Codage = "codage1"

    dans mon code j'utilise une �num�ration pour les types de codage utilis�s.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    typedef enum
    {
        codage0  = 0,
        codage1  = 1,
        codage2  = 2,
        codage3  = 4
    } TypeCodage;
    puis j'utilise cette enumeration comme param�tre d'une fonction:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    ....
    getMatrix(TypeCodage(codage1));
    ....

    comme puis-je remplacer codage1 par le string r�cup�rer � partir du fichier .txt

    Merci pour votre aide.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 136
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 136
    Billets dans le blog
    150
    Par d�faut
    Bonjour,

    En r�sum�, si ma compr�hension ne fait pas d�faut, tu veux faire un �num qui se charge � partir d'un fichier.
    Je dirai que c'est impossible.
    De plus, si tu veux garder les chaines de caract�re du fichier, il faudra surement changer t'a fonction 'TypeCodage' pour qu'elle prenne des chaines de caract�res.
    Vous souhaitez participer � la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui conna�t l'erreur, conna�t la solution.

  3. #3
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    Bonjour,
    La solution que je vois est de faire une table de correspondance entre la cha�ne de caract�re et la valeur de l'enum (std::map<std::string, mon_enum> par exemple).

  4. #4
    Membre confirm�
    Inscrit en
    Juin 2007
    Messages
    161
    D�tails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 161
    Par d�faut
    Non c'est pas �a. Je veux pas faire un �num qui se charge � partir d'un fichier. Le fichier que j'ai est un fichier qui contient les constantes utilis�e par le projet. Je l'ai utilis� pour facilit� toute mise � jour ult�rieure faite sur le projet.
    L'�num�ration est d�clar�e au niveau du code. Elle contient les types de codage que je peux utiliser dans mon application et chaque fois que le type de codage change, j'ai pas interet � voir le code. Je dois seulement changer son nom dans le fichier .txt.

    J'ai trouv� la solution suivante qui utilise le casting entre entier et �num�ration.

    Dans le fichier .txt je dois d�clarer comme suit:

    Codage = "1"

    puis dans le code j'appelle cette constante sous le nom de "l_iCodageType" qui est de type entier.

    l'�num�rartion est la suivante:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    typedef enum
    {
        codage0  = 0,
        codage1  = 1,
        codage2  = 2,
        codage3  = 4
    } TypeCodage;
    puis dans le code je fais le casting entre entier et �num�ration.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    TypeCodage l_CodageType = static_cast<TypeCodage> (l_iCodageType);
    ....
    getMatrix(l_CodageType);
    ....
    C'est une solution qui marche tr�s bien mais je pr�f�re trouv� la solution qui prend le nom du codage et non pas l'entier correspondant.

    Merci pour votre aide.

Discussions similaires

  1. [PHP 5.1.6] Probl�me de cast string
    Par maKyo dans le forum Langage
    R�ponses: 6
    Dernier message: 25/05/2009, 16h35
  2. Cast String vers Number
    Par romain_ci dans le forum ActionScript 3
    R�ponses: 2
    Dernier message: 14/08/2008, 13h40
  3. R�ponses: 2
    Dernier message: 23/10/2007, 17h33
  4. Cast string vers vertor<string>
    Par franc82 dans le forum C++
    R�ponses: 4
    Dernier message: 10/11/2006, 00h03
  5. [d�butant] cast string->int
    Par gigigao dans le forum Visual C++
    R�ponses: 8
    Dernier message: 23/08/2006, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo