diff --git a/Jsae.c b/Jsae.c index d4c21d4..a5e598e 100644 --- a/Jsae.c +++ b/Jsae.c @@ -3,11 +3,75 @@ int chargement(VilleIUT *tiut[],int *tMax) { FILE *flot; - VilleIUT v; + VilleIUT *v; + MaillonDept *m; + int nb = 0, pos; + char trouve; + flot = fopen("IUT.don", "r"); + if(flot == NULL) + { + printf("Problème d'ouverture du fichier\n"); + return -1; + } + while(!feof(flot)) + { + v = (VilleIUT *)malloc(sizeof(VilleIUT)); + if(v == NULL) + { + printf("Problème allocation ville lors de la lecture du fichier\n"); + return -2; + } + fscanf(flot, "%s", v->nom); + pos = recherche(tiut, nb, v->nom, &trouve); + m = (MaillonDept *)malloc(sizeof(MaillonDept)); + if(m == NULL) + { + printf("Problème allocation département lors de la lecture du fichier\n"); + return -3; + } + *m = lireDep(flot); + if(trouve == 'O') + { + insererDep(tiut[pos],*m); + } + else + { + m->suiv = NULL; + v->lDept = m; + tiut[nb] = v; + } + free(v); + free(m); + nb++; + } + return nb; +} + +MaillonDept lireDep(FILE *flot) +{ MaillonDept m; - flot = fopen("") + fscanf(flot,"%s%d", m.dept, &m.nbP); + fgets(m.respAd,31,flot); + m.respAd[strlen(m.respAd) - 1] = '\0'; + return m; +} + +void afficherDep(MaillonDept m) +{ + printf("%s\t%d\t%s\n", m.dept, m.nbP, m.respAd); +} + +void afficherVille(VilleIUT v) +{ + printf("%s\t", v.nom); + while(v.lDept != NULL) + { + afficherDep(*v.lDept); + v.lDept = v.lDept->suiv; + } } + void globale(void) { int tLog, tMax = 10; @@ -19,7 +83,7 @@ void globale(void) exit(1); } tLog = chargement(tiut,&tMax); - if(tLog == -1) + if(tLog < 0) { printf("Le programme ne peut pas fonctionner\n"); exit(1); diff --git a/Jsae.h b/Jsae.h index 0f8310d..2de6796 100644 --- a/Jsae.h +++ b/Jsae.h @@ -1,4 +1,25 @@ #include #include #include -#include \ No newline at end of file +#include + +typedef struct maillonDept +{ + char dept[31]; + int nbP; + char respAd[31]; + struct mailllonDept *suiv; + +}MaillonDept,*ListeDept; + +typedef struct +{ + char nom[31]; + ListeDept *lDept; + +}VilleIUT; + +int chargement(VilleIUT *tiut[],int *tMax); +MaillonDept lireDep(FILE *flot); +void afficherDep(MaillonDept m); +void globale(void); \ No newline at end of file