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 char monchar[20] en wxstring


Sujet :

wxWidgets

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 23
    Points
    23
    Par défaut conversion char monchar[20] en wxstring
    bonjour !
    je souhaite convertir une chaine de caractere en un wxString.
    comment faire ???
    merci

  2. #2
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    sur cette doc j'ai trouvé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    wxString my_string;
    my_string << wxT("channels") << '/' << wxT("hello");
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 23
    Points
    23
    Par défaut
    merci j'essai ça demain et je te tiens au courant

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    wxString possède tout ce qu'il faut pour ce genre de conversion : constructeur, opérateur d'affectation, et encore plein de choses.

    De plus la documentation est toujours très bien faite, ainsi que le wiki comme tu as pu le constater. N'hésite pas à aller y faire un tour.

    Bref tu as de quoi faire

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 23
    Points
    23
    Par défaut
    merci j'ai reussi ! meme si j'ai utiliser une autre methode que celle de hiko-seijuro, trouvée grace a son lien.
    @c++

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Bonjour. J'ai un problème du genre aussi... J'ai épluché tous les wikis, tutoriels et APIs imaginables mais rien ne fonctionne.

    Je voudrai convertir un "std::string" en "wxString".

    Merci.

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Il faut passer par l'intermédiaire d'un const char* std::string::c_str(). Après, avec un const char*, ton wxString se construit tout seul.

    Il me semble même qu'il y a une option de compilation pour que wxString soit constructible / convertible directement avec std::string, non ?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Salut, ben j'ai essayé déjà...

    Si je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string bar = "hello";
    wxString foo = bar.c_str();
    j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    main.cpp:163: error: conversion from ‘const char*’ to ‘wxString’ is ambiguous
    /usr/include/wx-2.6/wx/string.h:642: note: candidates are: wxString::wxString(wxChar, size_t) <near match>
    /usr/include/wx-2.6/wx/string.h:632: note:                 wxString::wxString(int) <near match>
    et si je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string bar = "hello";
    wxString foo = wxString(bar.c_str());
    j'ai aussi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    main.cpp:163: error: call of overloaded ‘wxString(const char*)’ is ambiguous
    /usr/include/wx-2.6/wx/string.h:670: note: candidates are: wxString::wxString(const wxWCharBuffer&) <near match>
    /usr/include/wx-2.6/wx/string.h:642: note:                 wxString::wxString(wxChar, size_t) <near match>
    /usr/include/wx-2.6/wx/string.h:640: note:                 wxString::wxString(const wxString&) <near match>
    /usr/include/wx-2.6/wx/string.h:632: note:                 wxString::wxString(int) <near match>
    Merci.

  9. #9
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu utilises quelle version de wxWidget ? Tu n'as pas ces fonctions membres ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    wxString(const char* psz, size_t nLength = wxSTRING_MAXLEN);
    wxString& operator =(const char* psz);

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Version 2.6.1.2.
    Ces fonctions ont été ajoutées dans la dernière version?

    En tout cas, la 2.6.1.2 c'est la dernière pour ma distribution...

  11. #11
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Ces fonctions apparaissent déjà dans la documentation de la version 2.4.1. Tu as vérifié tes en-têtes pour voir ce que ton wxString avait comme constructeurs et opérateurs d'affectation ?

    Tu utilises quel compilo ?

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Oui, ce constructeur et cet opérateur sont bien présents dans "wx/string.h"...

    J'utilise gcc (g++) sous Ubuntu/Debian Sid. Merci.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Au cours de nombreuses recherches je suis tombé là dessus:

    > string myString = "test";
    > wxString yourString = myString.c_str();
    >
    > > i want to convert a std::string to a wxString
    > > how can i do that
    > >
    > > string myString = "test";
    > > wxString yourString = myString; //doesn't work
    > >

    ABove solution won't work in Unicode builds, AFAIK.

    string myString;
    wxString yourString = wxConvLibcF8.cMB2WX( myString.c_str() );

    will work in any build.


    regards,
    David Schalig
    Je suis bien en UTF-8, il serait donc normal que cela foire... Par contre pour sa solution qui est censée marcher à tous les coups ben la fonction wxConcLibcF8WX n'est pas reconnue... Bouh...

  14. #14
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Ah oui effectivement, si l'unicode s'en mêle... Tu peux utiliser wstring dans ce cas, et de manière générale tous les équivalents STL qui gèrent les caractères longs (wfstream, wostream, ...). Ca t'évitera de devoir faire des conversions multi byte -> wide char.

    Pour ce qui est de faire marcher cette conversion avec wxWidgets, regarde la documentation de ta version, tout devrait y être expliqué.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Salut,
    Qu'entends-tu par "tu peux utiliser wstring dans ce cas"?
    Merci.

  16. #16
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Citation Envoyé par aurelsty
    Salut,
    Qu'entends-tu par "tu peux utiliser wstring dans ce cas"?
    Merci.
    Ben... Utiliser wstring, dont la fonction c_str() te renverra un pointeur sur chaîne longue. D'ailleurs si tu es en unicode, à quel moment as-tu besoin de manipuler des chaînes courtes ?

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Ben ce sont des chaînes qui viennent d'un fichier texte en fait...

  18. #18
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Ok donc tu as bien des conversions à faire. Comme je ne l'ai jamais fait avec wxWidgets, je ne peux que te conseiller d'éplucher la documentation, qui j'en suis sûr indique parfaitement comment procéder.

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Effectivement... j'avais pourtant déjà cherché des heures sérieusement.

    Sur un wiki (http://wiki.codeblocks.org/index.php...ode_Standards).
    En déclarant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ifdef wxUSE_UNICODE
        #define _U(x) wxString((x),wxConvUTF8)
        #define _UU(x,y) wxString((x),y)
    #else
        #define _U(x) (x)
        #define _UU(x,y) (x)
    #endif
    On peut effectuer la conversion de cette manière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    const char* incompatible = "This is an incompatible string";
    wxString compatible = _U(incompatible);
    Je ne comprend pas vraiment mais ça marche... Y'a plus qu'à espérer que ça marche sur toutes les plateformes...
    Merci bien pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CONVERSION] char* to wxString
    Par bustaja dans le forum wxWidgets
    Réponses: 6
    Dernier message: 26/04/2007, 16h26
  2. conversion char wide char
    Par ep31 dans le forum MFC
    Réponses: 4
    Dernier message: 15/11/2005, 08h14
  3. Pb Invalid Conversion "char" to "char*"
    Par kazarn dans le forum C++
    Réponses: 3
    Dernier message: 02/03/2005, 13h24
  4. Conversion char * vers wchar_t
    Par Zapan dans le forum C++
    Réponses: 4
    Dernier message: 24/02/2005, 15h56
  5. Réponses: 3
    Dernier message: 26/05/2004, 23h03

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