Je suis débutant en programmation c (c et non c++), cependant, en utilisant glade
et anjuta, j'ai réussi à faire fonctionner une petite application utilisant gnome et gtk (2.8).
Ma question est simple :
Y a-t-il un moyen de sauver un gtkliststore (je suppose que c'est là ou les données sont stockées ?) sans le parcourir ? (Car ça serait très utile.)
J'ai essayé notamment ça :
void sauver_liste_courtier(const gchar *filename)
{
FILE *fp;
fp = fopen(filename,"w");
fwrite(courtiers_list, sizeof(courtiers_list), 1, fp);
fclose(fp);
}
void charger_liste_courtier (const gchar *filename)
{
FILE *fp;
fp = fopen(filename,"r");
fread(courtiers_list, sizeof(courtiers_list), 1, fp);
fclose(fp);
}
courtiers_list est un *gtkliststore en variable globale.
Rem : même si j'ajoute des "rows" (qui s'affiche correctement dans l'application), le fichier crée ne change pas de taille (style 16 octet) donc, ça ne marche vraiment pas !
S'il faut le parcourir, pouvez-m'aider à créer un fonction ? Ou y'aurait-il une librairie qui puisse le faire à ma place.. ou une astuce ?...
Merci d'avance.
# Re
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 2.
Je ne sais pas exactement ce qu'est une gtkliststore mais apriori c'est une structure contenant au minimum un pointer vers une donnée et un pointeur vers la structure suivante, comme les conteneurs listes chaines en c++.
La grosse différence est qu'en C c'est a toi de faire la fonction (ou d'utiliser) qui parcours la liste et qui récupere les données de chaque champs.
En résumé:
*Sauvegarde*
POINTEUR=courtier_liste;
do {
Sauver(POINTEUR->data);
}
while( POINTEUR=POINTEUR->next );
*Restauration*
courtier_liste = malloc(sizeof(courtier_liste));
P1=courtier_liste;
P2=courtier_liste;
while(data = Charger(fichier)) {
P1->data = data;
if (P1!=P2) P2->next = P1;
P2 = P1;
P1 = malloc(sizeof(courtier_liste));
}
# Début de réponse ....
Posté par jlh . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.