| 12
 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
 102
 103
 
 |  
 
void visualisation(GtkWidget *widget, gpointer data)
{
    FILE  *fich, *fich_tmp;
    gchar *title[NB_INT_MAX];
    gchar tmp[50];
    GtkWidget *pTextView = NULL;
    GtkWidget *pScrolled = NULL;
    GtkTextBuffer *Buffer_v;
    GtkTextIter Buffer_Start_v;
    GtkTextIter Buffer_End_v;
	int nb_int, i;
    GtkWidget *pBoite;
 
    Struct_Widget *pt = (Struct_Widget *) data;
    pTextView = GTK_WIDGET(pt->TextView_v);
    Buffer_v = gtk_text_view_get_buffer(GTK_TEXT_VIEW(pTextView));
    gtk_text_buffer_get_start_iter(Buffer_v, &Buffer_Start_v); /* On recupere l'origine du buffer */
    gtk_text_buffer_get_end_iter(Buffer_v, &Buffer_End_v);     /* On recupere la fin du buffer */
 
    pBoite = gtk_dialog_new_with_buttons("Visualisation Intitules.",GTK_WINDOW(pt->Main_win),GTK_DIALOG_MODAL,GTK_STOCK_OK,GTK_RESPONSE_OK,NULL);
   /* Creation de la zone de saisie */
    GtkWidget *pTextview = gtk_text_view_new(); 
    pScrolled = gtk_scrolled_window_new(NULL,NULL);
 
    Buffer_v = gtk_text_view_get_buffer(GTK_TEXT_VIEW(pTextView));
    gtk_text_buffer_get_start_iter(Buffer_v, &Buffer_Start_v); /* On recupere l'origine du buffer */
    gtk_text_buffer_get_end_iter(Buffer_v, &Buffer_End_v);     /* On recupere la fin du buffer */
 
    gtk_widget_set_size_request(pTextview, 500, 300);
    gtk_text_view_set_editable(GTK_TEXT_VIEW(pTextview), FALSE);  /* permet de ne pas écrire */
    gtk_container_add(GTK_BOX(GTK_DIALOG(pBoite)->vbox), pScrolled);
    gtk_box_pack_start(GTK_CONTAINER(pScrolled,pTextview,TRUE, TRUE, 5
 
	/*  ouverture du fichier .txt en lecture seule */
	fich = fopen("memo.txt","r");
	if(fich == NULL)
	{
		perror("Erreur d'ouverture du fichier\n");
		exit(0);
    }
 
 
   	fich_tmp = fopen("test.txt","w");
	if(fich_tmp == NULL)
	{
		perror("Erreur d'ouverture du fichier\n");
		exit(0) ;
    }
 
	/* Extraire les intitulés */
    nb_int = 0; 
    while( feof(fich) == 0 ) 
    { 
      /* Extraire une ligne (exple) */ 
      fgets(tmp, 50, fich); 
      /* Allocation */ 
      *(title + nb_int) = (gchar *)malloc(NB_INT_MAX * sizeof(gchar)); 
      /* Recherche du " parcours du fichier */ 
      if( strncmp(&tmp[0],"\"", 1) == 0 ) 
      { 
          ...
          /* On copie la categorie */ 
          strcpy(*(title + nb_int), tmp); 
          ...
      } 
    } 
 
 
    /* Sauvegarde du intitulé  */
    pt->dernier_memo = title[nb_int - 1];
	fprintf(fich_tmp,"Dernier intitule ====> %s\n", (pt->dernier_memo));
 
	/* Ecriture des Intitulés dans la textview */
	for( i = 0 ; i < nb_int ; i++)
	{
		gtk_text_buffer_insert(Buffer_v, &Buffer_Start_v, *(title + i), strlen(*(title + i )));
		gtk_text_buffer_insert(Buffer_v, &Buffer_Start_v, "\n", 1);
	}
 
    /* fermeture du flux associé au fichier */  
	fclose(fich);
    fclose(fich_tmp);
 
 
   /* Affichage des elements de la boite de dialogue */
    gtk_widget_show_all(GTK_DIALOG(pBoite)->vbox);
 
    /* Destruction de la boite de dialogue */
    switch (gtk_dialog_run (GTK_DIALOG (pBoite)))
    {
       case GTK_RESPONSE_YES:
           gtk_widget_destroy (pBoite);
           return;
           break;
    }
 
    free(title);
    gtk_widget_destroy (pBoite);
 
 
} | 
Partager