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 :

probleme de declaration de variables


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 20
    Points
    20
    Par défaut probleme de declaration de variables
    Bonsoir, j'ai un probleme qui vient d'apparaitre alors qu'avant mon programme compilait parfaitement.
    Je dois créer une interface avec GTK+ et charger une combobox.
    seulement lors de son chargement, le programme me dit 'file undeclared' et je ne compren pas pourquoi...
    Voila mon code:
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    #include <gtk/gtk.h>//indispensable pour la création de programme utilisant GTK+
    #include <stdlib.h>//  permet  d'utiliser toutes les  fonctions de la   librairie
    #include <string.h>//permet de mettre du   texte
    //****************************************************************************************************
    /*declaration des variables globales (pour y avoir acces dans toutes les fonctions facilement)*/
    char *memo_path = "memos.txt";//crée un pointeur de type char qui pointe sur le fichier texte memostxt
    char *cat_path = "memocat.txt";//crée un pointeur de type char qui pointe sur le fichier texte memoscat.txt
     
     
    GtkWidget *window = NULL;//création d'un widget  window et on l'initialise à rien 
     
    GtkWidget *container = NULL;// container contiendra tous les boutons il est placé a  l'interieur de  window
     
    GtkWidget *quit_button = NULL;//bouton quitter
    GtkWidget *save_button = NULL;//bouton sauvegarder
    GtkWidget *rem_button = NULL;//bouton supprimer
    GtkWidget *clean_button = NULL;//bouton effacer
     
    GtkWidget *label_title = NULL;//titre du mémo :un label est juste une ligne qui sera  noté dans la fenetre
    GtkWidget *label_main = NULL;// label qui indique le titre du corps du mémo
    GtkWidget *label_combo = NULL;// label qui indique le titre de la  combo box ici la  catégorie
    GtkWidget *label_list = NULL;// label qui indique le titre de la liste des mémo
     
    GtkWidget *title_text = NULL;// contiendra le titre du mémo
    GtkWidget *main_text_view = NULL;//contiendra le  corps du mémo
    GtkTextBuffer *main_text_buffer = NULL;// c'est un  widget non  graphique qui sert à stocker les données du  mémo
    GtkWidget *scroll_text = NULL;//contiendra les barres de défilement????????
     
    GtkWidget *combo = NULL;//contiendra les  catégories
     
    GtkWidget *list = NULL;// contiendra la  liste des mémos
    //***************************************************************************************************
    /*fonction qui affiche les informations du memo de la liste dans les differents champs*/
    void get_memo(){
         *file = fopen(memo_path, "r");//ouverture en lecture seule du  fichier momo_path
         char temp[256] = "";//mot  auxiliaire contiendra les  éléments  voulus
         char old_temp[256] = "";//autre mot auxiliaire
         // permet de récupérer le texte choisi par l'utilisateur
         char *title = gtk_combo_box_get_active_text(GTK_COMBO_BOX(list));
         char main_text[8192];//contien le corps du mémo
         int index = 0;//compteur
         char cat[256];//contient une des catégories contenue dans le fichier
     
         fgets (temp, 256, file);//lecture dans le   fichier des catégories  du premier mot
     
         while (temp != NULL){
               if (temp[0] == '\"'){//permet d'accepter la  présence d'espace dans la désignation des cat
                  int i = 0;//compteur
     
                  /*verification du titre*/
                  while (temp[i+1] == title[i]){
                        i++;
                  }
                  if (i == strlen(title) && temp[i+1] == '\n'){
                     //met le titre dans le  widget title_text en effacant le contenu  précédent
                     gtk_entry_set_text(GTK_ENTRY (title_text), title);
     
                     /*copie du corps*/
                     fgets (temp, 256, file);//lecture dans le   fichier des catégories
                     fgets (temp, 256, file);//lecture dans le   fichier des  catégories  de l'élement suivant
                     i = 0;
                     while (temp[i] != '\"'){
                           if (temp[i] == '\n'){
                              fgets(temp, 256, file);////lecture  d'un élément du fichier catégories
                              main_text[index++] = '\n';
                              i = 0;
                           }
                           main_text[index++] = temp[i];
                           i++;
                     }
                     main_text[index] = '\0';
                     //efface le contenur main_text_buffer et ecrit le contenu de main_text dedans
                     gtk_text_buffer_set_text (main_text_buffer, main_text, strlen(main_text));
     
                     /*copie de la categorie*/
                     i += 7;
                     int j = 0;
                     while (temp[i] != '\"'){
                           cat[j] = temp[i];
                           i++;
                           j++;
                     }
                     cat[j] = '\0';
                     i = 0;
                     //tant que  tout le  fichier  n'a aps  été mis  dans la  liste déroulante
                     while (strcmp (gtk_combo_box_get_active_text (GTK_COMBO_BOX (combo)), cat) != 0){
                           //récupère la catégorie sélectionnée
                           gtk_combo_box_set_active (GTK_COMBO_BOX (combo), i);
                           i++;
                     }
                  }
               }
               strcpy(temp, old_temp);//old_temp  est copié dans temp
               fgets (temp, 256, file);// lecture de  temp dans le fichier
               if (strcmp(temp, old_temp) == 0){//si les  deux chaines  sont   identiques 
                                                //ie on arrive a  la fin du fichier
                  break;//on arete
               }
         }
         fclose (file);//fermeture du  fichier
    }

  2. #2
    Membre expérimenté
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Points : 1 381
    Points
    1 381
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    *file = fopen(memo_path, "r");
    Je vais répéter ce que te dit le compilateur: où est la déclaration de la variable file ?

    Tu veux certainement dire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FILE *file = fopen(memo_path, "r");

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Oui c'est ce que j'avais marqué a l'origine...
    Desole, comme j'avais fait des modifications, j'ai oubile de remettre le mot FILE. Bref, même quand je mets FILE, il me dit la même chose!
    Je ne comprends pas pourquoi...

  4. #4
    Membre expérimenté
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Points : 1 381
    Points
    1 381
    Par défaut
    Essaye d'ajouter
    et décompose le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FILE *file;
     
    file = fopen(memo_path, "r");
    Je ne garantis rien mais ça marchera peut-être mieux ....

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

Discussions similaires

  1. Probleme de declaration de variable dans une classe
    Par mattmax dans le forum VB.NET
    Réponses: 4
    Dernier message: 17/02/2014, 14h51
  2. [Débutant] Probleme de declaration de variable
    Par mikey83 dans le forum VB.NET
    Réponses: 0
    Dernier message: 30/11/2013, 11h56
  3. Probleme de declaration de variable
    Par dubis dans le forum Langage
    Réponses: 2
    Dernier message: 21/01/2011, 11h43
  4. Probleme Declaration de Variable...
    Par joxbl dans le forum Langage
    Réponses: 15
    Dernier message: 27/10/2005, 18h48
  5. Problème déclaration de variable dans un package
    Par LE NEINDRE dans le forum Modules
    Réponses: 3
    Dernier message: 23/08/2005, 18h26

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