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 :

Aide pour debogage


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2019
    Messages : 16
    Par défaut Aide pour debogage
    Bonjour à tous,

    Je fais actuellement une application traductrice. J'ai donc 2 fichiers avec les traductions.
    Le problème, c'est que le programme utilise toujours le même fichier, et ce, malgrès le changement de direction.
    J'ai mis en pièce jointe les différents fichiers utilisés, si quelqu'un veut bien y jeter un oeil et m'aider à débogguer.
    Le makefile n'étant pas accepté, le programme se compile avec la commande suivante : gcc -o traducteur main.c gui.c `pkg-config --cflags --libs gtk+-3.0` -lm
    Petite précision, je travaille avec CodeBlocks et sous Linux KUbuntu.
    Je vous remercie d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Bonjour,

    Tu as 2 variables qui définissent le sens de la traduction. En fonction des choix utilisateur, tu modifies une des 2 pour finalement la garder inchangée (par exemple si on choisi Fr->En, tu modifies infoTraductionFrEn pour y écrire que c'est Fr->En). C'est ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        g_signal_connect(G_OBJECT(radio_fr_en), "toggled", G_CALLBACK(on_radio_toggled), &infoTraductionFrEn); // si on veut FrEn on dit que FrEn devient FrEn
        g_signal_connect(G_OBJECT(radio_en_fr), "toggled", G_CALLBACK(on_radio_toggled), &infoTraductionEnFr); // si on veut EnFr on dit que EnFr devient EnFr
        g_signal_connect(G_OBJECT(radio_ajout_fr_en), "toggled", G_CALLBACK(on_radio_toggled_ajout_mot), &infoTraductionFrEn); // si on veut FrEn on dit que FrEn devient FrEn
        g_signal_connect(G_OBJECT(radio_ajout_en_fr), "toggled", G_CALLBACK(on_radio_toggled_ajout_mot), &infoTraductionEnFr); // si on veut EnFr on dit que EnFr devient EnFr
    Quand tu veux savoir quel sens utiliser, tu utilises toujours infoTraductionFrEn, c'est ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        bouton_traduction = creer_bouton_traduction("Traduire", G_CALLBACK(afficher_boite_dialogue_traduction), &infoTraductionFrEn);  // utiliser FrEn
        bouton_ajout_mot = creer_bouton_traduction("Ajouter Mot", G_CALLBACK(afficher_boite_dialogue_ajout_mot), &infoTraductionFrEn); // utiliser FrEn
    Les 2 variables dont a besoin devraient plutôt correspondre à : "quel est le sens pour traduction" et "quel est sens pour ajout mot". Ca donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        // Créez un bouton pour la traduction
        bouton_traduction = creer_bouton_traduction("Traduire", G_CALLBACK(afficher_boite_dialogue_traduction), &infoTraduction); // utiliser sens traduction
     
        // Créez un bouton pour ajouter un mot dans le dictionnaire
        bouton_ajout_mot = creer_bouton_traduction("Ajouter Mot", G_CALLBACK(afficher_boite_dialogue_ajout_mot), &infoAjoutMot);  // utiliser sens ajout mot
     
        // Connectez le signal "toggled" des boutons radio à une fonction de rappel
        g_signal_connect(G_OBJECT(radio_fr_en), "toggled", G_CALLBACK(on_radio_toggled), &infoTraduction); // choisir FrEn pour traduction
        g_signal_connect(G_OBJECT(radio_en_fr), "toggled", G_CALLBACK(on_radio_toggled), &infoTraduction); // choisir EnFr pour traduction
        g_signal_connect(G_OBJECT(radio_ajout_fr_en), "toggled", G_CALLBACK(on_radio_toggled_ajout_mot), &infoAjoutMot);
        g_signal_connect(G_OBJECT(radio_ajout_en_fr), "toggled", G_CALLBACK(on_radio_toggled_ajout_mot), &infoAjoutMot);

  3. #3
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2019
    Messages : 16
    Par défaut
    Bonjour dalfab,

    Tout d'abord merci d'avoir pris le temps de regarder mon code et surtout d'y avoir apporter la solution.
    J'étais tellement obnubilé par le fait que l'erreur venait, pour moi, d'un autre block, que je n'ai même pas vu que c'était tout autre alors que je suis passé sur ce block bien 6-7 fois.
    Merci à toi

  4. #4
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2019
    Messages : 16
    Par défaut
    Après avoir fait les modifs', je me retrouve avec des erreurs à la compilation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    gui.c: In function ‘creer_fenetre_principale’:
    gui.c:44:110: error: ‘infoTraduction’ undeclared (first use in this function); did you mean ‘InfoTraduction’?
       44 | on = creer_bouton_traduction("Traduire", G_CALLBACK(afficher_boite_dialogue_traduction), &infoTraduction); // utiliser sens traduction
          |                                                                                           ^~~~~~~~~~~~~~
          |                                                                                           InfoTraduction
    gui.c:44:110: note: each undeclared identifier is reported only once for each function it appears in
    gui.c:47:111: error: ‘infoAjoutMot’ undeclared (first use in this function)
       47 |  = creer_bouton_traduction("Ajouter Mot", G_CALLBACK(afficher_boite_dialogue_ajout_mot), &infoAjoutMot);  // utiliser sens ajout mot
          |                                                                                           ^~~~~~~~~~~~
     
    make: *** [Makefile:2: traducteur] Error 1
    Tu avais réussi à compiler de ton côté dalfab?

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Il faut aussi remplacer ailleurs les infoTraductionFrEn et infoTraductionEnFr qui doivent disparaître par infoTraduction et infoAjoutMot.

  6. #6
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2019
    Messages : 16
    Par défaut
    Oui, le seul bloc qui avait encore ces infos c'est celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    static InfoTraduction infoTraduction = {"", ""};
    static InfoTraduction infoAjoutMot = {"", ""};
    J'ai modifié et retiré les valeurs mais il utilise toujours le même fichier de traduction et ce, peu importe ce que je saisi comme infos.
    Il me rend dingue, je n'arrive pas à voir pourquoi ça bloque comme ça :/

    En fait, danc le bloc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const gchar* traduire(const gchar *mot, const gchar *direction, const gchar *fichierParam) {
        const gchar *fichier = (strcmp(direction, "fr-en") == 0) ? "dicoE.txt" : "dicoF.txt";
    
        // Débogage : Affiche le chemin du fichier
        g_print("Chemin du fichier : %s\n", fichier);
    
        FILE *file = fopen(fichier, "r");
        if (file == NULL) {
            fprintf(stderr, "Erreur lors de l'ouverture du fichier de dictionnaire pour la traduction.\n");
            return NULL;
        }
    fichier reçoit toujours la valeur dicoF.txt

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

Discussions similaires

  1. Aide pour débogage
    Par Invité dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/01/2013, 17h46
  2. [langage]Besoin d'aide pour debogage d'un script
    Par deadgod dans le forum Langage
    Réponses: 32
    Dernier message: 27/06/2005, 00h18
  3. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05
  4. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

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