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 :

problème de comparaison de chaine de caractère


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 33
    Points
    33
    Par défaut problème de comparaison de chaine de caractère
    Bonjour,

    J'ai une variable de type string qui possède une valeur string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System::String *flip = Convert::ToString(tr->GetAttribute("UVflip"));
    (ici flip=True)

    j'essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(flip=="True")
    MessageBox::Show("prout");
    mais l'appli ne passe pas dans le if...quelqu'un sait-il pourquoi ?

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    normal, tu compares un pointeur à "True". tu devrais faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (*flip == "True") {
        MessageBox::Show("prout");
    }
    Par contre, pourquoi emplois-tu des pointeurs ?
    Nul ne peut mieux connaitre la connaissance qu'elle-même.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 33
    Points
    33
    Par défaut
    si je met pas le "*" ça me fait des erreurs (pour infos je suis sur VC++.net)

    error C2262: 'flip' : cannot be destroyed
    error C2664: 'System::String::String(const __wchar_t *)' : cannot convert parameter 1 from 'System::String __gc *' to 'const __wchar_t *'
    error C3149: 'System::String' : illegal use of managed type 'System::String'; did you forget a '*'?
    error C2676: binary '==' : 'System::String' does not define this operator or a conversion to a type acceptable to the predefined
    error C3861: 'flip': identifier not found, even with argument-dependent lookup


    avec ce que tu m'as proposé au dessus j'obtient également des erreurs :

    error C2664: 'System::String::op_Equality' : cannot convert parameter 1 from 'System::String' to 'System::String __gc *'
    error C2676: binary '==' : 'System::String' does not define this operator or a conversion to a type acceptable to the predefined operator

  4. #4
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Pourquoi system::string et pas std::string?

    Quelle est la différence?
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 33
    Points
    33
    Par défaut
    aucune idée sur la différence....

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 47
    Points : 47
    Points
    47
    Par défaut
    La différence est la suivante :

    System::string, c'est un objet de la collection .NET donc tu utilises forcément un projet C++ Managé pour que ça compile (tu dois avoir un #using <mscorlib.dll> si je me souviens bien)

    alors que std::string est la chaine de caractère standard du c++ (STL)

  7. #7
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Merci de ces précisions.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 33
    Points
    33
    Par défaut
    sinon quelqu'un aurait une solution pour mon problème ?

  9. #9
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    Citation Envoyé par swirtel
    normal, tu compares un pointeur à "True". tu devrais faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (*flip == "True") {
        MessageBox::Show("prout");
    }
    Par contre, pourquoi emplois-tu des pointeurs ?
    As tu essayé ca ? ca semble bien
    "vaste programme"

  10. #10
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    Je répète une seconde fois ma question, pour quelle raison emplois-tu un pointeur ?
    Nul ne peut mieux connaitre la connaissance qu'elle-même.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 47
    Points : 47
    Points
    47
    Par défaut
    ça vient du fait qu'il utilise une collection .NET...
    c'est la seule solution pour utiliser la collection .NET en C++ managé...
    ça doit venir du fait que la collection est cross langage (p ê à cause de mécanisme de garbage collector ou autre).

    toujours est-il que ce n'est pas du C++ standard, ni une librairie standard.

    dans un premier temps, je conseillerais à Dylan de ne pas se rajouter des difficultés avec le .NET...

  12. #12
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    C++/CLI n'est pas C++.
    S'il s'agit bien de C++/CLI, un autre forum serait peut-être plus approprié.
    Boost ftw

Discussions similaires

  1. problème de comparaison deux chaines de caractères
    Par jean sami dans le forum Débuter
    Réponses: 2
    Dernier message: 15/06/2008, 23h47
  2. Problème de comparaison de chaines de caractères
    Par nicolas2603 dans le forum VBA Access
    Réponses: 4
    Dernier message: 12/03/2008, 14h04
  3. Problème avec comparaison de chaines de caractères
    Par nemesis00 dans le forum MATLAB
    Réponses: 4
    Dernier message: 01/01/2008, 18h56
  4. Réponses: 2
    Dernier message: 10/05/2006, 15h23
  5. Réponses: 2
    Dernier message: 23/03/2006, 12h39

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