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

GTK+ avec C & C++ Discussion :

Comparaison de deux chaines en GTK+


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Par défaut Comparaison de deux chaines en GTK+
    Bonjour !

    Je voudrais comparer deux chaines de caractère avec GTK+ . Mais , je ne sais pas comment faire . J'ai essayer strcmp , mais ca ne marche .

    Si vous pouviez m'aider , je vous en serais reconnaissant .

    Cordialement ,Arvel
    .

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Salut et bienvenue sur les forums de developpez.com

    Citation Envoyé par Arvel
    Je voudrais comparer deux chaines de caractère avec GTK+ . Mais , je ne sais pas comment faire . J'ai essayer strcmp , mais ca ne marche .
    Rien de tel avec la GLib (GTK+) mais cela devrait fonctionner avec strcmp ... Montre voir ton code !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Par défaut
    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
    void Validation(GtkWidget *Widget , gpointer data)
    {
        gchar pseudo;
        gchar pass;
        gchar verifpseudo = "Arvel";
        gchar verifpass = "password";
     
        pseudo = gtk_entry_get_text(GTK_ENTRY(EntryPseudo));
        if(pseudo == verifpseudo)
        {
            pass = gtk_entry_get_text(GTK_ENTRY(EntryPassword));
            if(pass == verifpass)
            {
                gtk_entry_set_text(GTK_ENTRY(EntryPseudo) , "Réussi");
            }
            else
            gtk_main_quit();
        }
        else
        gtk_main_quit();
    }
    EntryPseudo et EntryPassword sont déclarées en global ?

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par Arvel
    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
    void Validation(GtkWidget *Widget , gpointer data)
    {
        gchar pseudo;
        gchar pass;
        gchar verifpseudo = "Arvel";
        gchar verifpass = "password";
     
        pseudo = gtk_entry_get_text(GTK_ENTRY(EntryPseudo));
        if(pseudo == verifpseudo)
        {
            pass = gtk_entry_get_text(GTK_ENTRY(EntryPassword));
            if(pass == verifpass)
            {
                gtk_entry_set_text(GTK_ENTRY(EntryPseudo) , "Réussi");
            }
            else
            gtk_main_quit();
        }
        else
        gtk_main_quit();
    }
    EntryPseudo et EntryPassword sont déclarées en global ?
    Heu c'est moi que tu poses cette question ! C'est ton code, à toi de le savoir

    S'ils le sont, il faut éviter, sauf si bien entendu c'est un simple programme de test mais sinon, il faut éviter autant que faire se peut. Un conseil, tu peux éventuellement (vu que cette fonction est apparement un callback d'un widget) mettre ces deux GtkEntry dans une structure puis passer l'adresse de cette structure lors de la connection du signal au widget (le dernier argument quoi) puis tu récupère un pointeur vers cette structure depuis le paramètre "data" !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Par défaut
    Nop Nop Nop .

    C'était pas une question . Mon doigt à du ripé du point au point d'interrogation .

    Mais il n'y a rien pour comparer les 2 chaines en GTK ?

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par Arvel
    Nop Nop Nop .

    C'était pas une question . Mon doigt à du ripé du point au point d'interrogation .
    Ok au temps pour moi

    Citation Envoyé par Arvel
    Mais il n'y a rien pour comparer les 2 chaines en GTK ?
    Bin non à priori non mais cela existe dans la bibliothèque standard ce qui est largement suffisant, tu inclus string.h et tu utilise strcmp, y'a rien d'autre à faire ! Est-ce que tu respecte au moin la casse de tes saisies par rapport à ce qui doit être comparé ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  7. #7
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par Arvel
    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
    void Validation(GtkWidget *Widget , gpointer data)
    {
        gchar pseudo;
        gchar pass;
        gchar verifpseudo = "Arvel";
        gchar verifpass = "password";
    
        pseudo = gtk_entry_get_text(GTK_ENTRY(EntryPseudo));
        if(pseudo == verifpseudo)
        {
            pass = gtk_entry_get_text(GTK_ENTRY(EntryPassword));
            if(pass == verifpass)
            {
                gtk_entry_set_text(GTK_ENTRY(EntryPseudo) , "Réussi");
            }
            else
            gtk_main_quit();
        }
        else
        gtk_main_quit();
    }
    Oui en fait j'avais pas fait attention à ca mais regarde en rouge ... ce n'est pas comme ca qu'on test l'égalité entre deux chaînes !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  8. #8
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 13
    Par défaut
    avant quand je comparais deux chaînes je faisait comme if(chaine1==chine2)
    mais ca marche pas tout le temps prenons un exemple:
    voila un code qui devrait marcher mais qui plante et avec :if(strcmp(c1 , c2)==0) il marche.
    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
    22
     
    #include <stdio.h>
    #include <stdlib.h>
     
     
     
     
    int main()
    {
     
    char *chaine1[100];
    char chaine2[]="texte";
     
     
    chaine1[0]="texte";
     
    if(chaine1[0] == chaine2)
    	printf(" ca marche ");
     
     
    	return 0;
    }

    et voila un qui marche avec strcmp

    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
    22
    23
     
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
     
     
    int main()
    {
     
    char *chaine1[100];
    char chaine2[]="texte";
     
     
    chaine1[0]="texte";
     
    if(strcmp (chaine1[0], chaine2 )    ==   0)
    	printf(" ca marche ");
     
     
    	return 0;
    }

    a+

  9. #9
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Si ca marche (ton code 1) c'est un comportement indéterminé car ce n'est pas comme ca qu'on compare des chaînes de caractères, pour comparer deux données numérique là ok mais c'est tout ! Pour des chaînes il y a strcmp entre autres !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

Discussions similaires

  1. comparaison de deux chaines
    Par Ganondorf dans le forum Langage
    Réponses: 10
    Dernier message: 18/10/2007, 22h55
  2. Comparaison de deux chaines de caractere
    Par arnogb69 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/08/2007, 21h39
  3. Comparaison de deux chaines
    Par sam.fet dans le forum Linux
    Réponses: 5
    Dernier message: 09/05/2006, 14h54
  4. comparaison de deux chaines de caractères
    Par zazou41 dans le forum C++
    Réponses: 6
    Dernier message: 27/02/2006, 14h26
  5. Réponses: 5
    Dernier message: 06/10/2003, 17h49

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