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++/CLI Discussion :

ajout de"fonction" dans dictionary


Sujet :

C++/CLI

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut ajout de"fonction" dans dictionary
    Bonsoir ,Je suis novice en la matière et
    suite a mon dictionary de code je voudrai ajouter par exemple un message dans un textBox ou l'affichage d'une pictureBox.
    dans le codage ci dessous le mot exemple s'affiche dans la texBox3 et y reste
    ce qui est normal mais je voudrai changer en fonction de la saisi TexBox1 (add) .Merci pour votre aide .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    {
        String^ b;
        Dictionary< String^, String^ > ^ dict;
        dict = gcnew Dictionary< String^, String^>();
        dict->Add(L"C004",L"message 1"),(b = "exemple 1");
        dict->Add(L"C005",L"message 2"),(b = "exemple 2");
        dict->Add(L"C006",L"message 3"),(b = "exemple 2");
        dict->Add(L"C007",L"message 3");
        String^ a = textBox1->Text;		 
        String^ Result;
        if(dict->ContainsKey(a)) 
        {
            textBox2->Text = dict[a];
            textBox3->Text = b;
        }
        else 
        {
            textBox2->Text = L"Code Inconnu";
        }
    }

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    J'ai du mal à comprendre ce que tu cherches à faire exactement.
    Peux-tu préciser ?

    Note: Ce n'est pas du C++ normal, mais du C++/CLI et c'est horriblement indenté.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut
    ok je vais essayé d'etre plus clair ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dict->Add(L"C004",L"message 1"),(b = "exemple 1");// ici on vas afficher suite dict dans textBox 2: message1  mais je voudrai pouvoir ajouter sois du texte dans une autre textBox3 soit afficher un pictureBox ou les 2.
     
    dict->Add(L"C005",L"message 2");// seul le dict sera affiché dans la texBox2 et rien dans la TextBox3
    "c'est horriblement indenté" peux-tu etre plus clair stp , merci encore pour ton aide .
    @+

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dict->Add(L"C004",L"message 1"),(b = "exemple 1");
    Tu sais, ça, c'est deux instructions différentes, séparées par un point-virgule. C'est complètement équivalent à cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dict->Add(L"C004",L"message 1");
    b = "exemple 1";
    Si tu veux mettre deux chaînes dans ton dictionnaire, tu dois utiliser un dictionnaire de structures comprenant deux chaînes.
    Code C++/CLI : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public ref class TwoStrings {
    public:
    	String^ first;
    	String^ second;
    };
     
    //...
    		Dictionary< String^, TwoStrings^ > ^ dict;
    Ou encore un dictionnaire de KeyValuePair< String^, String^ >.

    Ou si tu veux, comme le titre l'indique, mettre des fonctions dans ton dictionnaire, il te faut utiliser un dictionnaire de delegates.

    "c'est horriblement indenté" peux-tu etre plus clair stp , merci encore pour ton aide .
    Je disais juste que l'indentation du code que tu as posté est horrible.
    Voici le même code avec l'indentation corrigée:
    Code C++/CLI : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    		String^ b;
    		Dictionary< String^, String^ > ^ dict;
    		dict = gcnew Dictionary< String^, String^>();
    		dict->Add(L"C004",L"message 1"), (b = "exemple 1");
    		dict->Add(L"C005",L"message 2"), (b = "exemple 2");
    		dict->Add(L"C006",L"message 3"), (b = "exemple 2");
    		dict->Add(L"C007",L"message 3");
    		String^ a = textBox1->Text;		 
    		String^ Result;
    		if(dict->ContainsKey(a)) 
    		{
    			textBox2->Text = dict[a];
    			textBox3->Text = b;
    		}
    		else 
    			{textBox2->Text = L"Code Inconnu";}
    	}		 
    	};
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut
    Pour les 2chaines j'ai essayé mais n'y suis pas arrivé car je ne comprend pas tres bien le fonctionnement ,en codant avec ton exemple j'ai les erreurs :
    error C3156: : vous ne pouvez pas avoir de définition locale d'un type managé
    error C3923: : les définitions de classes, de structures ou d'unions locales ne sont pas autorisées dans une fonction membre d'une classe managée
    error C2143: erreur de syntaxe : absence de ';' avant '{'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    #pragma endregion
    	private: System::Void button1_Click(System::Object^
    sender,System::EventArgs^  e) 
            {
            public ref class TwoStrings 
           {
            public:
    	String^ first;
    	String^ second;
            }
    	{
             Dictionary< String^, TwoStrings^ > ^ dict;
    	}
    	}
    	};
    }
    et pour utiliser un dictionnaire de delegates, quel en est le principe ?

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Ah, ben évidemment il ne faut pas mettre la définition de classe dans une fonction!
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

Discussions similaires

  1. [Fonction] Quote et guillemet dans un textarea
    Par ddelec24 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/03/2007, 15h51

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