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 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
| #include <stdlib.h>
#include <gtk/gtk.h>
#include <string.h>
typedef struct
{
const gchar *nom;
const gchar *prenom;
const gchar *telephone;
}personne;
void mettreFichier(GtkWidget *widget,gpointer data);
void LireFichier(GtkWidget *widget,gpointer data);
static GtkWidget *pLabel1;
static GtkWidget *pEntry1;
static GtkWidget *pLabel2;
static GtkWidget *pEntry2;
static GtkWidget *pLabel3;
static GtkWidget *pEntry3;
static personne Client;
FILE *fichier;
int main(int argc,char **argv)
{
GtkWidget *pWindow;
GtkWidget *pVBox;
GtkWidget *Valider;
GtkWidget *AfficherListe;
gtk_init(&argc,&argc);
pWindow =gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(pWindow),GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(pWindow),320,200);
gtk_window_set_title(GTK_WINDOW(pWindow),"contact telephonique");
g_signal_connect(G_OBJECT(pWindow),"destroy",G_CALLBACK(gtk_main_quit),NULL);
pVBox =gtk_vbox_new(FALSE,0);
gtk_container_add(GTK_CONTAINER(pWindow),pVBox);
pLabel1 = gtk_label_new("Nom");
gtk_box_pack_start(GTK_BOX(pVBox),pLabel1,TRUE,FALSE,0);
pEntry1 = gtk_entry_new();
gtk_box_pack_start(GTK_BOX(pVBox),pEntry1,TRUE,FALSE,0);
pLabel2 = gtk_label_new("Prenom");
gtk_box_pack_start(GTK_BOX(pVBox),pLabel2,TRUE,FALSE,0);
pEntry2 = gtk_entry_new();
gtk_box_pack_start(GTK_BOX(pVBox),pEntry2,TRUE,FALSE,0);
pLabel3 = gtk_label_new("Telephone");
gtk_box_pack_start(GTK_BOX(pVBox),pLabel3,TRUE,FALSE,0);
pEntry3 = gtk_entry_new();
gtk_box_pack_start(GTK_BOX(pVBox),pEntry3,TRUE,FALSE,0);
Valider =gtk_button_new_with_label("Valider");
gtk_box_pack_start(GTK_BOX(pVBox),Valider,TRUE,FALSE,0);
AfficherListe =gtk_button_new_with_label("AfficherListe");
gtk_box_pack_start(GTK_BOX(pVBox),AfficherListe,TRUE,FALSE,0);
g_signal_connect(G_OBJECT(Valider),"clicked",G_CALLBACK(mettreFichier),NULL);
g_signal_connect(G_OBJECT(AfficherListe),"clicked",G_CALLBACK(LireFichier),NULL);
gtk_widget_show_all(pWindow);
gtk_main();
return EXIT_SUCCESS;
}
void mettreFichier(GtkWidget *widget,gpointer data)
{
Client.nom =gtk_entry_get_text(GTK_ENTRY(pEntry1));
Client.prenom =gtk_entry_get_text(GTK_ENTRY(pEntry2));
Client.telephone =gtk_entry_get_text(GTK_ENTRY(pEntry3));
fichier =fopen("monfichier.bin","ab+");
if(fichier!=NULL)
{
fwrite(&Client,sizeof(Client),1,fichier);
gtk_main_quit();
fclose(fichier);
}
}
void LireFichier(GtkWidget *widget,gpointer data)
{
GtkWidget *fenetre;
GtkWidget *pVBox;
GtkWidget *OK1;
GtkWidget *pLabell1;
gchar *nom;
GtkWidget *pLabell2;
GtkWidget *pLabell3;
GtkWidget *pLabell4;
fenetre =gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(fenetre),GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(fenetre),320,200);
gtk_window_set_title(GTK_WINDOW(fenetre),"Liste des contact telephonique");
g_signal_connect(G_OBJECT(fenetre),"destroy",G_CALLBACK(gtk_main_quit),NULL);
pVBox =gtk_vbox_new(FALSE,0);
gtk_container_add(GTK_CONTAINER(fenetre),pVBox);
fichier = fopen("monfichier.bin" , "rb+");
rewind(fichier);
while(fread(&Client,sizeof(Client),1,fichier)!=NULL)
{
nom = g_strdup_printf("Nom: %s",Client.nom);
pLabell1 = gtk_label_new(nom);
gtk_box_pack_start(GTK_BOX(pVBox),pLabell1,TRUE,FALSE,0);
g_free(nom);
}
fclose(fichier);
OK1 =gtk_button_new_with_label("ok");
gtk_box_pack_start(GTK_BOX(pVBox),OK1,TRUE,FALSE,0);
g_signal_connect(G_OBJECT(OK1),"clicked",G_CALLBACK(gtk_main_quit),NULL);
gtk_widget_show_all(fenetre);
gtk_main();
} |
Partager