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
}