Fichier en C

Fermé
hona - 25 août 2008 à 09:58
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 - 25 août 2008 à 12:48
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 jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 janvier 2010 6
25 août 2008 à 10:14
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 jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 janvier 2010 6
25 août 2008 à 12:47
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 lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
25 août 2008 à 12:48
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