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

wxWidgets Discussion :

Conversion de wxString en const char *


Sujet :

wxWidgets

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2004
    Messages : 574
    Points : 109
    Points
    109
    Par défaut Conversion de wxString en const char *
    Bonjour,

    Je suis en train de m'arracher les cheveux... pour tenter de faire cette opération "simpliste"...

    Je suis passée sur le site de wxWidget :
    http://docs.wxwidgets.org/2.8/wx_wxs...xstringgetdata

    J'ai essayé "moulte" méthode mais rien n'y fait !
    à l'aide de cette fonction par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_textCtrl4->GetValue().ToAscii()
    Je n'obtiens qu'une chaine très bizarre !

    Et du coup si je veux réafficher cette value dans une autre chaine de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    const char * l_data = m_textCtrl5->GetValue().ToAscii();  
     
    std::ostringstream l_os;
    l_os << "Ma donnée" << "#" << l_data << "#";
    wxString l_str (l_os.str().c_str(), wxConvUTF8);
    m_staticText9->SetLabel(l_str);
    Il n'y a plus rien qui s'affiche du tout dans mon m_staticText9.
    Alors que si je test en mettant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const char * l_data = "Test";
    Je vois bien ma chaine s'afficher...

    Sauriez vous comment être sur de récupérer un const char * correct depuis un wxString ?

  2. #2
    Membre averti Avatar de wxXav
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Décembre 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : Décembre 2008
    Messages : 214
    Points : 354
    Points
    354
    Par défaut
    Hello

    En regardant la doc officielle de wxString::ToAscii, on peut lire ceci :
    Note that this conversion only works if the string contains only ASCII characters. The mb_str method provides more powerful means of converting wxString to C string.
    Tu peux donc utiliser directement cette méthode pour la suite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l_os << "Ma donnée" << "#" << m_textCtrl4->GetValue().mb_str() << "#";
    Je n'ai pas testé, mais je pense (très fort) que ça doit marcher.

    @+
    Xav'

  3. #3
    Futur Membre du Club
    Homme Profil pro
    administrateur Unix
    Inscrit en
    Août 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : administrateur Unix

    Informations forums :
    Inscription : Août 2011
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Salut,

    Voici comment je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_textCtrl4->GetValue().char_str()
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_textCtrl4->GetValue().char_str(wxConvUTF8)
    si l'application est censée gérer l'Unicode.

    A+
    Buzz

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2004
    Messages : 574
    Points : 109
    Points
    109
    Par défaut
    J'avais essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_textCtrl4->GetValue().mb_str(wxConvUTF8)
    et ça ne fonctionnait pas.

    J'essaye vos suggestions lundi !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 23
    Points : 22
    Points
    22
    Par défaut par exemple
    conversion wxStirng const* char : (manuel Smart and co)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    wxString str;
    printf(" voila la ruse %s",str.c_str());
    ça ça marche.

Discussions similaires

  1. conversion de types DWORD const char *
    Par koukou11 dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 04/03/2011, 01h43
  2. Conversion de char vers const char
    Par Lucas Panny dans le forum Visual C++
    Réponses: 9
    Dernier message: 01/09/2008, 16h36
  3. Réponses: 7
    Dernier message: 16/02/2008, 07h30
  4. conversion AnsiString en const char*
    Par Mangacker dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/05/2007, 18h43
  5. Conversion CString en const char*
    Par LRobi dans le forum MFC
    Réponses: 8
    Dernier message: 19/07/2005, 12h12

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