Enregistrement et chargement d'une liste en utilisant un fichier

Fermé
Myriam - Modifié par Myriam le 1/05/2013 à 22:43
 Mehdi - 2 mai 2013 à 19:04
Bonjour ! est ce que vous pouvez m'aider a trouver un code equivalent a celui ci ?

Une procedure enreg qui permet d'enregistrer le contenu d'une liste simplement chainée dans un fichier txt
void enreg(liste L) 
  
{ 
  
FILE* file; 
  
file=fopen("fiche.txt","r+"); 
  
if(file==NULL) 
  
file=fopen("fiche.txt","w+"); 
  
if(!L) 
  
titre("Error 404 ===> Pas d'Info à enregistrer !\a"); 
  
else 
  
titre("Enregistrement Terminée !"); 
  
waite(1); 
  
fprintf(file,"%d\n",length(L)); 
  
while(L) 
  
{ 
  
fprintf(file,"%d ",L->info.mat); 
  
fprintf(file,"%s ",L->info.nom); 
  
fprintf(file,"%s ",L->info.pren); 
  
fprintf(file,"%s ",L->info.adr); 
  
fprintf(file,"%d %d %d ",L->info.DE.j,L->info.DE.m,L->info.DE.a); 
  
fprintf(file,"%ld ",L->info.tel); 
  
fprintf(file,"%s ",L->info.ser); 
  
fprintf(file,"%f\n",L->info.sb); 
  
L=L->suiv; 
  
} 
  
fclose(file); 
  
}


Et une fonction charg qui permet de charger la liste "L" avec les informations deja enregistrées dans le fichier txt

liste charg() 
{ 
int nb; 
liste L=NULL; 
struct inf info; 
FILE* file; 
file=fopen("fiche.txt","r+"); 
if(file!=NULL) 
{ 
fscanf(file,"%d\n",&nb); 
if(nb) 
{ 
for(i=1;i<=nb;i++) 
{ 
fscanf(file,"%d ",&info.mat); 
fscanf(file,"%s ",&info.nom); 
fscanf(file,"%s ",&info.pren); 
fscanf(file,"%s ",&info.adr); 
fscanf(file,"%d %d %d ",&info.DE.j,&info.DE.m,&info.DE.a); 
fscanf(file,"%ld ",&info.tel); 
fscanf(file,"%s ",&info.ser); 
fscanf(file,"%f\n",&info.sb); 
L=ajout_q(L,info); 
} 
titre("Chargement Terminée !");waite(1); 
} 
else 
{titre("Error 404 ===> Le Fichier est vide !\a");waite(1);} 
} 
else 
{titre("Error 404 ===> Le Fichier est vide !\a");waite(1);} 
fclose(file); 
return(L); 
}


Merci en avance ^_^
A voir également:

1 réponse

je pense que ton code marchera en C++, il faut juste remplacer titre("") par printf("") si tu veux afficher des messages en console ! et while(L) par
while(L != NULL)
0