diff --git a/part1.c b/part1.c index 31fa2e1..8cb66e8 100644 --- a/part1.c +++ b/part1.c @@ -5,7 +5,9 @@ void lireM(FILE *f, MaillonDept * m)//lire maillon { - fscanf(f, "%s %d %s", m->departement, &m->nbP, m->respAd); + fscanf(f, "%s %d", m->departement, &m->nbP); + fgets(m->respAd, 31, f); + m->respAd[strlen(m->respAd)-1]='\0'; } @@ -33,7 +35,7 @@ ListDept InsertT(ListDept list, MaillonDept * m)//Insert en tête de la liste } -ListDept Insert(ListDept list, MaillonDept *m) +ListDept Insert(ListDept list, MaillonDept *m)//insert globalement { if (list == NULL){return InsertT(list, m);} if (strcmp(list->departement, m->departement)>0){return InsertT(list, m);} @@ -41,6 +43,7 @@ ListDept Insert(ListDept list, MaillonDept *m) return list; } + /*étapes pour le chargement: 1) pour chaque ville : malloc VilleIUT ->initialisation à NULL de la liste et fscanf la ville 2) récup le nb pour faire une boucle @@ -50,11 +53,56 @@ et on recommence tant que fichier non vide*/ int Chargement(VilleIUT **tV, int tmax, char *nameFile) { FILE *f; - int cpt, cptbcl; + int i = 0; f = fopen(nameFile, "r"); if (f == NULL){printf("pb ouv file"); return -1;} + while (!feof(f)) + { + int cpt; + VilleIUT *v; + v = (VilleIUT *)malloc(sizeof(VilleIUT)); + if (v == NULL){printf("pb malloc");exit;} + fscanf(f, "%s %d", v->ville, &cpt); + printf("**%d**\n", cpt); + for (cpt; cpt > 0; cpt--) + { + printf("bleu\n"); + MaillonDept *m; + m = (MaillonDept*)malloc(sizeof(MaillonDept)); + if (m == NULL){printf("pb malloc"); exit;} + lireM(f, m); + AfficheDpmt(m); + v->ldept = Insert(v->ldept, m); + } + tV[i] = v; + i++; + } + return i; + } +void AfficheDpmt ( MaillonDept *dpt ){ + if ( dpt == NULL) return; + printf("%s %d %s \n", dpt->departement, dpt->nbP, dpt->respAd); + AfficheDpmt(dpt->suiv);} + + + +void afficheIUT (VilleIUT *iut){ + printf ("%s \n", iut->ville); + AfficheDpmt(iut->ldept); +} + + + +void Affichetableau(VilleIUT ** TabIUT, int n ){ + int i; + + for ( i = 0 ; i < n ; i++ ) + afficheIUT(TabIUT[i]); +} + + diff --git a/prout.don b/part1.don similarity index 98% rename from prout.don rename to part1.don index 14578de..45776df 100644 --- a/prout.don +++ b/part1.don @@ -10,8 +10,3 @@ Biologie 154 Jean Claude Aurillac 2 Biologie 102 Michèle Robert Bio-Informatique 98 Claude Loeb - - - - - diff --git a/part1.h b/part1.h index 6c9b9df..dd1e45e 100644 --- a/part1.h +++ b/part1.h @@ -17,3 +17,12 @@ typedef struct{ }VilleIUT; typedef MaillonDept * ListDept; + +void lireM(FILE *f, MaillonDept * m);//lire maillon +int Exists(char *st1, char *st2); +ListDept InsertT(ListDept list, MaillonDept * m); +ListDept Insert(ListDept list, MaillonDept *m); +int Chargement(VilleIUT **tV, int tmax, char *nameFile); +void AfficheDpmt ( MaillonDept *dpt ); +void afficheIUT (VilleIUT *iut); +void Affichetableau(VilleIUT ** TabIUT, int n ); diff --git a/test b/test index 7ef8ad3..a96f7a1 100755 Binary files a/test and b/test differ diff --git a/tpart1.c b/tpart1.c index 82b3b9a..bda1319 100644 --- a/tpart1.c +++ b/tpart1.c @@ -6,44 +6,11 @@ - - - - - - - - - - - - - - - - - - - - - -void AfficheDpmt ( MaillonDept *dpt ){ - if ( dpt == NULL) return; - printf("%s %d %s ", dpt.departement, dpt.nbP, dpt.respAd); - AfficheDpmt(dpt->suiv);} - - - -void afficheIUT (VilleIUT *iut){ - printf ("%s ", iut->ville); - AfficheDpmt(iut->ldept); +int main(void) +{ + VilleIUT *tV[200]; + int nb; + nb = Chargement(tV, 200, "part1.don"); + Affichetableau(tV, nb); + return 0; } - - - -void Affichetableau(VilleIUT * TabIUT, int n ){ - int i; - - for ( i = 0 ; i < n ; i++ ) - afficheIUT(TabIUT[i]); -} \ No newline at end of file