begin process at 2012 05 28 07:47:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Fichier & Disque

 > 

chargement d'une liste chainée à partir d'un fichier binaire qui contient des structures


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

chargement d'une liste chainée à partir d'un fichier binaire qui contient des structures

dimanche 21 mars 2010 à 23:15:09 | chargement d'une liste chainée à partir d'un fichier binaire qui contient des structures

achmer

bonjours à tous...

j'ai un petit problème au niveau de la récupération des structures (patient) enregistrées dans un fichier bonaire ,pour les charger ensuite dans une liste chainée..
En fait avec ce code ("ça passe, mais")je n'arrive à récupérer que la première structure (le premier patient) qui se trouve dans le fichier...

voilà le code de ma fonction qui fait ce chargement à partir du fichier vers la nouvelle liste chainée créée :

void charger(liste*l)
{
initialiser(l);
FILE *Fin;

Fin=fopen("fiches.txt","rb");
if(Fin==NULL)
{
printf("\n\n\n\n\n\t\timpossible d'ouvrir le fichier en lecture\n ");
getch();
return;
}

while(!feof(Fin))
{
patient *p=(patient*)malloc(sizeof(patient));
fread(p,sizeof(*p),1,Fin);
insererFin(l,*p);
}
fclose(Fin);
}


et voilà le code des deux fonctions appelées : initialiser et insererFin :

void initialiser(liste *l)
{
l->tete=NULL;
}


void insererFin(liste *l,patient p)
{ cellule* cour=l->tete;

//preparer la nouvelle liste
cellule* nouv=(cellule*)malloc(sizeof(cellule));
nouv->info=p;
nouv->suivant=NULL;

//rattacher la nouvelle cellule
if(l->tete==NULL)
{ l->tete=nouv;
}
else
{ while(cour->suivant!=NULL)
{ cour=cour->suivant;
cour->suivant=nouv;
}
}
}

Merci pour votre attention

lundi 22 mars 2010 à 09:56:07 | Re : chargement d'une liste chainée à partir d'un fichier binaire qui contient des structures

tpoinsot

Réponse acceptée !
Bonjour,
utilise les balises de code, c'est mieux pour te lire.

A la fin :
Code C/C++ :
while(cour->suivant!=NULL) 
{ cour=cour->suivant; 
cour->suivant=nouv; 
} 


je suppose que tu voulais dire
Code C/C++ :
while ( cour->suivant != NULL ) 
{
  cour = cour->suivant; 
} 
cour->suivant = nouv; 

( position de { )

Je n'ai pas plus regardé, mais pourquoi n'insères-tu pas chaque nouvel élément en tête de liste, tu éviterais le while ( -> suivant )
lundi 22 mars 2010 à 14:18:59 | Re : chargement d'une liste chainée à partir d'un fichier binaire qui contient des structures

achmer

Merci beaucoup pour votre aide..

c'était ça l'erreur,j'ai pas bien fait attention ... j'ai encore rectifié un peu la lecture à partir du fichier et tout marche bien maintenant..

Merci encore pour votre attention et pour répondre à votre question : les structures de patient enregistrées dans mon fichier sont déjà triées selon l'ordre alphabétique de leurs noms,et je voulais que la liste obtenue soit triée aussi en gardant cet ordre par ce que j'en ai besoin ensuite dans mon application.

Merci,et bonne journée


Cette discussion est classée dans : fichier, fin, liste, cellule, patient


Répondre à ce message

Sujets en rapport avec ce message

traitement d'un fichier txt [ par sylvain ] Bonjour,Je doit effectuer un traitement sur un fichier txt.Je reçoit un fichier txt sous cette forme :// début fichierdébut annonce..........@ fin ann les listes chaînées C. [ par ayour ] veuillez m evoyer une solution pour l ennonce suivant : merci a tt le monde.Matière exercée: les listes chaînées.Les services de renseignements possèd pb de (fin de) fichier assez urgent [ par Harmsik ] Salut,j'ai fait un programme du type client/serveur (sans les sockets ... )En fait du côté serveur, je stocke des messages sous forme de structure (le Lecture d'un fichier texte pour mettre dans une liste chainée [ par webgladiator ] Merci de prendre du temps à me lire.J'ai un projet d'info dont le but est d'effectuer le plus court itinéraire dans le metro parisien (opimisation).J' PB de gestion de fichier!!!! [ par kobee12 ] J'ai un probleme avec la boucle qui se trouve en dessous ( do ... while(!feof(fichier)) ).quand on arrive a la fin du fichier il fait une erreur. il n lecture d'un fichier en c [ par GazGaz ] lu allalors voila j'ai un fichier et je voudrait réaliser l'algo suivant avec ce fichier :se mettre au debut du fichiertant que c'est pas la fin de fi Ecrire a la fin d'un fichier ? [ par manta7 ] Bonjour,j'ai un petit probleme, je voudrais savoir s'il etait possible d'ecrire a la fin d'un fichier.Je m'explique :Dans une premiere fonction je cre REcuperer des donnée d'un fichier binaire vers une tableau de hachage [ par whiteknight ] Slt j'ai des problemes avec ma fonction load qui me permet de recuperer les données d'un fichier binaire et de les transférer vers un tableau de hacha [C] insertion en fin de liste chainée [ par Cow_B ] Bonjour, j'ai à nouveau un ch'tit souci...je cherche à insérer un nouveau maillon à la fin d'une liste chainée. Avec ce que je fais, je me fait envoye Ecriture dans un fichier en C++ : fin de ligne compte double ! [ par mary4 ] Bonjour,j'ai un petit problème lorsque j'écris dans un fichier...Lorsque je veux positionner le curseur à une place précise pour écrire, il se positio


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales