Salut,
j'ai créé une interface graphique avec Glade et Devcpp, j'ai un bonton ouvrir qui me permet de choisir des fichiers sources, et les fichiers selectionnés sont affichés dans un treeview. Puis a partir du chemin j'ouvre les fichiers avec fopen et j'affecte les données à des tableaux de valeurs avec fscanf.
Le code sera plus explicite.
void
on_button_select_file_ok_clicked (GtkButton *button,
gpointer user_data)
{
GtkWidget *filechooser;
GtkWidget *treeview;
GSList *file;
gint i;
GtkListStore *store;
GtkTreeIter iter;
char chaine[8];
filechooser = (GtkWidget *)lookup_widget(GTK_WIDGET(button),"filechooserdialog" );
treeview = (GtkWidget *)lookup_widget(GTK_WIDGET (window_main),"treeview" );
file_list = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER(filechooser));
file = file_list;
/* create list store */
store = gtk_list_store_new (NFILE_COLUMNS,G_TYPE_INT,G_TYPE_STRING);
nb_of_file = g_slist_length(file_list);
cur_file_num = 0;
/* add data to the list store */
for (i = 0; i < nb_of_file; i++)
{
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
FILE_NUM,i+1, /* column 0 */
FILE_NAME,g_slist_nth_data(file_list,i), /* column 1 */
-1);
printf("fichier chemin %s \n",g_slist_nth_data(file_list,i));
}
gtk_tree_view_set_model(GTK_TREE_VIEW(treeview),GTK_TREE_MODEL(store));
g_object_unref (G_OBJECT (store));
gtk_widget_hide( filechooser );
}
void fraction_masse_brulee(GtkWidget *widget)
{
for(f=0;f<nb_of_file;f++)
{
fp[f]=fopen(g_slist_nth_data(file_list,f),"rt" );
}
for(f=0;f<nb_of_file;f++)
{
for(n=0;n<20001;n++)
{
fscanf(fp[f],"%f\t%f\t%f\t%*f\t%*f\t%f\n",&t[f][n],&p[f][n],&TTL[f][n],&x[f][n]);
}
fclose(fp[f]);
}
printf("%f\t%f\t%f\t%f\n",t[1][0],&p[1][0],&TTL[1][0],x[1][0]);
}
exemple de fichiers sources :
-100.00 2.000000 0.000000 15.106800 0.054425 21.636970065000
-99.99 2.000000 0.000000 15.112530 0.042970 21.638542905000
-99.98 2.000000 0.000000 15.108365 0.042445 21.636314715000
-99.97 2.000000 0.000000 15.124510 0.039320 21.635397225000
-99.96 2.000000 0.000000 15.122425 0.055990 21.638870580000
-99.95 2.000000 0.000000 15.122945 0.054945 21.634414200000
-99.94 2.000000 0.000000 15.119300 0.059115 21.636314715000
-99.93 2.000000 0.000000 15.120340 0.054425 21.634414200000
donc lorsque je lui demande d'achiffer la premiere ligne de ce fichier par exemple, le programme donne -100.00 0.0000 0.0000 0.0000
en gros il n'affiche pas les autres valeurs demandées de plus si je remplace -100.00 dans le fichier à lire par -100.15, le programme affiche toujours -100.00 pourtant tous les tableaux, tableaux de pointeurs et variables sont en float.
Si quelqu'un peut m'aider
Merci