Fichier en C

hona -  
Mahmah Messages postés 496 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voici une des mes fonctions, j'aimerais la remodeler pour qu'elle utilise les fichiers
mais je n'y arrive pas, pourrait-on m'expliquer?

J'ai essayer quelque petit truc mais cela ne fonctionne pas.

merci




/* Déclaration structures  */

struct date{
	short  jour;
	short  mois;
	short  annee;
};
typedef struct date Da;

struct club {
	
	long   NumClub;
	struct date Da;
	char   Nom [30];
	long offset;
};
typedef struct club Cl;

struct membres{

	long   Num;
	char   nom[20];
	char   prenom[30];
	struct date DateNaissance;
	char   sexe;
};
typedef struct membres Mem;

struct inscrit
{
	long   NumClub;
	long   Num;
	int    total;
};
typedef struct inscrit In;

struct Index
{
	long Num;
	char nom[20];
	long offset;
};
typedef struct Index Ind;

struct ptoptl
{
	long offsetTeteOccupee;
	long offsetTeteLibre;
};
typedef struct ptoptl Offsets;

/****************************************************************/
/* Input : recoit l'adresse de la premiere structure club*/
/* Process : Affiche les membres d'un club             */
/* Output : /                                                   */
/****************************************************************/

void AfficheMemClub( club*pcl, inscrit*pins, Ind*pind, membres*pmem)
{
	FILE *fp;
	FILE *fpmem;
	long offset = poff->offsetTeteOccupee;
	
	short trouve,i=0,j;
	struct index *tmp;

	printf("Affichage des membres d'une competition\n");
	printf("_______________________________________\n\n");

	fp = fopen(CLUBFILENAME,"rb");

	trouve = RechercheClub(pcl);

	if (trouve!=-1)
	{
		printf("\nAffichage des membres\n");
		printf("__________________________\n\n");

		fpmem= fopen(MEMBRESFILENAME,"rb");

		pcl=pcl+trouve;

		while(i<100)
		{
			j=0;

			tmp=pind;
			if(pins->NumClub==pcl->NumClub)
			{
				while(j<50 && pins->Num!=tmp->Num)
				{
					j++;
					tmp++;
				}
				if(j<50)
				{
				fseek(fpmemb,offset,SEEK_SET);
			                 fread(pmem,sizeof(Mem),1,fp);
					//pind=tmp->offset;
					printf("\n");
					AfficheUn (pmem);
				}
			}
			pins++;
			i++;
		}
	}
}
A voir également:

3 réponses

mich62120 Messages postés 631 Date d'inscription   Statut Membre Dernière intervention   6
 
Salut,

Desolé, j'ai pas le temps de regarder ça maintenant mais en regardant vite fait la seule que je peux dire c'est que tu ne refermes pas tes fichiers avec fclose( fp);

J'essaierai de regarder plus tard.

Mich
-1
mich62120 Messages postés 631 Date d'inscription   Statut Membre Dernière intervention   6
 
Re,

Tu n'as pas de précision sur l'origine des erreurs (erreurs d'exécution ou compilation et lesquelles)?

mich.
-1
Mahmah Messages postés 496 Date d'inscription   Statut Membre Dernière intervention   125
 
Bonjour,

Un rapide coup d'oeil aussi, le fread n'est pas correct, le premier paramètre devrait être un buffer, voire dans ce cas ci, l'adresse d'une variable de type Mem.

fread sur cplusplus.com

M.
-1