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 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