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 :

Valeur retourner par GTK_ComboBox si vide


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Par défaut Valeur retourner par GTK_ComboBox si vide
    Bonjour à tous,
    Voilà j'ai un petit soucis dans une application que je suis entrain de concevoir.

    Pour faire simple cette partie du programme est une fenêtre avec des comboBox qui contiennent les marques et modèle de gsm en stock dans notre magasin. Cette fenêtre permet d'imprimer les fiches technique relative a chaque appareil.

    Donc je récupéré les valeur dans les Combobox, et je créer les chemin pour pouvoir aller lire le fichier associer au gsm.

    Seulement lorsque l'utilisateur ne sélectionne rien comme valeur dans les autres combobox, celle-ci retourne "(null)". En quand elle retourne cela je ne parviens pas a concaténer mes chaine pour créer le chemin.

    De quoi pourrais t- il venir?

    Voici de quoi vous aider :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     /* Botol_Window.c */
     
    //Recuperation des Combobox Marque et Modele
          ST_SelectGsm[0].Marque = gtk_combo_box_get_active_text(GTK_COMBO_BOX(pComboMarque1));
          ST_SelectGsm[1].Marque = gtk_combo_box_get_active_text(GTK_COMBO_BOX(pComboMarque2));
          ST_SelectGsm[2].Marque = gtk_combo_box_get_active_text(GTK_COMBO_BOX(pComboMarque3));
          ST_SelectGsm[3].Marque = gtk_combo_box_get_active_text(GTK_COMBO_BOX(pComboMarque4));//  Si un des combox est vide
          ST_SelectGsm[0].Modele = gtk_combo_box_get_active_text(GTK_COMBO_BOX(pComboModele1));//  il lui atribuera la
          ST_SelectGsm[1].Modele = gtk_combo_box_get_active_text(GTK_COMBO_BOX(pComboModele2));//  valeur => (null)
          ST_SelectGsm[2].Modele = gtk_combo_box_get_active_text(GTK_COMBO_BOX(pComboModele3));
          ST_SelectGsm[3].Modele = gtk_combo_box_get_active_text(GTK_COMBO_BOX(pComboModele4));
     
          //Creation des chemin des fichiers
          /* Il faut voir comment faire pour avoir le bon chemin quand la valeur est (null)*/
     
     
          Chemin1 = g_strconcat("Data","/",ST_SelectGsm[0].Marque,"/",ST_SelectGsm[0].Modele,".ptc",NULL);
          Chemin2 = g_strconcat("Data","/",ST_SelectGsm[1].Marque,"/",ST_SelectGsm[1].Modele,".ptc",NULL);
          Chemin3 = g_strconcat("Data","/",ST_SelectGsm[2].Marque,"/",ST_SelectGsm[2].Modele,".ptc",NULL);
          Chemin4 = g_strconcat("Data","/",ST_SelectGsm[3].Marque,"/",ST_SelectGsm[3].Modele,".ptc",NULL);
     
     
     
          //Ouverture des fichiers
          FicheGsm1 = fopen(Chemin1, "r");
          if (FicheGsm1 != NULL)
          printf("\nFiche Gsm 1 Charger... %s",Chemin1);
          else
          printf("\nErreur au chargement de la fiche Gsm 1");
          FicheGsm2 = fopen(Chemin2, "r");
          if (FicheGsm1 != NULL)
          printf("\nFiche Gsm 2 Charger... %s",Chemin2);
          else
          printf("\nErreur au chargement de la fiche Gsm 2");
          FicheGsm3 = fopen(Chemin3, "r");
          if (FicheGsm1 != NULL)
          printf("\nFiche Gsm 3 Charger... %s",Chemin3);
          else
          printf("\nErreur au chargement de la fiche Gsm 3");
          FicheGsm4 = fopen(Chemin4, "r");
          if (FicheGsm1 != NULL)
          printf("\nFiche Gsm 4 Charger... %s",Chemin4);
          else
          printf("\nErreur au chargement de la fiche Gsm 4");
     
          //Lecture des fichier
                .......
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     /* Botol_Lib.c */
     
    typedef struct SelectGsm SelectGsm;
    struct SelectGsm
    {
          const char *Marque;
          const char *Modele;
    };
    Voici si je renvoie les variables dans la console se que sa donne...
    Il ne créer pas le chemin.

    Images attachées Images attachées  

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Soit tu sélectionnes une valeur par défaut dans tes combobox, soit tu testes si la valeur est NULL et tu fais qque chose de "bien" dans ce cas là. g_build_filename s'arrête au premier NULL qu'il rencontre, donc c'est normal qu'il te mette que Data dans le nom de fichier généré.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Par défaut
    Merci, je viens de comprendre mon erreur grâce a toi

    Je penssais que lorsque le combobox etait vide il attribuait la valeur "(null)" comme si c'était une chaine.
    Alors que il lui attribue NULL en temps que valeur NULL... Enfin je me comprends ^^

    Voici comment je procède pour créer les chemin de mes fichiers e cela fonctionne :

    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
     
    if (ST_SelectGsm[0].Marque == NULL || ST_SelectGsm[0].Modele == NULL)
                Chemin1 = g_strconcat("Data","/","(null)","/","(null)",".ptc",NULL);
          else
                Chemin1 = g_strconcat("Data","/",ST_SelectGsm[0].Marque,"/",ST_SelectGsm[0].Modele,".ptc",NULL);
     
          if (ST_SelectGsm[1].Marque == NULL || ST_SelectGsm[1].Modele == NULL)
                Chemin2 = g_strconcat("Data","/","(null)","/","(null)",".ptc",NULL);
          else
                Chemin2 = g_strconcat("Data","/",ST_SelectGsm[1].Marque,"/",ST_SelectGsm[1].Modele,".ptc",NULL);
     
          if (ST_SelectGsm[2].Marque == NULL || ST_SelectGsm[2].Modele == NULL)
                Chemin3 = g_strconcat("Data","/","(null)","/","(null)",".ptc",NULL);
          else
                Chemin3 = g_strconcat("Data","/",ST_SelectGsm[2].Marque,"/",ST_SelectGsm[2].Modele,".ptc",NULL);
     
          if (ST_SelectGsm[3].Marque == NULL || ST_SelectGsm[3].Modele == NULL)
                Chemin4 = g_strconcat("Data","/","(null)","/","(null)",".ptc",NULL);
          else
                Chemin4 = g_strconcat("Data","/",ST_SelectGsm[3].Marque,"/",ST_SelectGsm[3].Modele,".ptc",NULL);

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Utilise g_build_filename plutôt que g_strconcat. Et je ne comprends pas trop à quoi ça te sert de créer un nom de fichier avec (null) dedans, ça va de toute façon poser des pbs plus tard non ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Par défaut
    Non sa ne créer pas de problème par la suite, car alors il point vers un fichier qui s'appelle null.ptc et qui contient des informations spécifique pour completé l'état par la suite ;-)

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

Discussions similaires

  1. comment comparer les valeurs retournés par DBGrid
    Par Ice-tea dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/06/2006, 14h42
  2. Réponses: 1
    Dernier message: 22/05/2006, 11h27
  3. [SQL] Valeur retournée par une requête...
    Par Empty_body dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/01/2006, 22h13
  4. VB6 --> Valeurs retournées par une comboBox
    Par the java lover dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/12/2005, 16h26
  5. valeur retournée par un .js
    Par astrofiles dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/08/2005, 10h20

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