From 0c2a8bd48f8cc6736353514d2d9e5e1725a19790 Mon Sep 17 00:00:00 2001 From: "thibaud.la_riviere-gillet" Date: Wed, 10 Jan 2024 17:33:18 +0100 Subject: [PATCH] limitation de rff, lit les com de la partie precedence --- SAE2 | Bin 35624 -> 35688 bytes includes/charge.h | 1 + obj/charge.o | Bin 4728 -> 4736 bytes obj/main.o | Bin 808 -> 912 bytes obj/structures.o | Bin 5104 -> 5480 bytes srcs/charge.c | 76 ++++++++++++++++++++++++---------------------- srcs/main.c | 7 +++++ srcs/structures.c | 7 +++++ 8 files changed, 55 insertions(+), 36 deletions(-) diff --git a/SAE2 b/SAE2 index 26a67982483878b35fb1938c86e8ae8ea2d76771..e7d8adde13796cd374ae49bb24719d3983a1ed41 100755 GIT binary patch delta 3147 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 diff --git a/obj/main.o b/obj/main.o index d9ff0c84a804177cda2bcfea62f10848a4463ddc..c0a4987bb578bcf5fab3370723ca1278e61c8b71 100644 GIT binary patch delta 447 zcmZ3%Hi3PDgWv@Q2_0Q(#lO|eEB_v5n7IG2{0^Y9DG&H3&tsGq z<#+h`lD}amM`h*@jz)%wFPIsAzTlsHiP6{|C<9g(%rNnxGs8p>djYfjj|I%}KOPD@ z>;&-{7#f29Ry(f*nm_RXbNn@+7#M&YIysP0q<#*N0d$XU50GX9(hWeG9Z07DX$~MA z0i;=gv;dH11=2u@0T>i)X+W9}8YUpI1P~wSL0Aa50{Q$%@`gY@5|=>5@Z6h9e@PO#HGfPGoTU*Fd8Vq3}h!v{AkXb z0pzd)IX8fGz+_WKc}AAWiHz!#3mAFC{vT$z__vyA<=+JdoIre_Yhm6p1oHWj rfNo>-L>q?_F9^&*>_M#wOT|I9RWc2|uQQwHN5tE?>uHg>b`kDrchB@zx(6{D zLJOmH&b!1AX34c&6+@BA`axB(owr^-S#70>-Q*9n*UwD3f4fJ5Ch{Y2B{x8PqdW6_4z@JEZ-)Ky3x(sR+lscxRhkO{v)yecCh zsmH-mjNb=~z}w(@JRm6PZ2>)|cUfMbn5KtX4VIA$dO$qDD3sJyumrx9F2p8q5~Nwj zK$eJlH&r)L0yKa zWd{TA(aSo=@lv5v7$ZQwa+9CGRl^AY>VhS!a&kUaf}c`IjYZ7wXbXYuYS z8qi4J#r>ohMI(JIsf18D|0?S&9`9k@U{2?_3x2X2!wFIx=c-98h+^E_?r_(xXP1vi zRI#q$tVhU%^*44v{I72=7=K~*I<^*+Ey$`}pkwB=!|k}Up!R`T;JoClZ#w61X+C|e krq$QzOMa)KA?HzL-FDGjzs29yx&@uK3oYCJO1fj>4>rEw!TbMR9908tMfJbDpx4C0|ekscKMPj*%%LzZ8D^X7f*n{Dq|8>;2P z-T-ytv&W&gK6$YJM&G|=5B|2c5>3<}?bF?XMX9d%>fgp=UY}D=T#IP=i8g_WAW=v? z3q(}OlgO;VGRThVM6WTQH!kAg*d|X1j5Qy4UiCfqFM65}1HC=w0uB=+vMS&pQFYp3 zxd`q;egZUAOf!7gz}o0#vo+($5bP#wCwL8vWA2i}@*GzoUj@BHg;Ngg3YbFv5NLqI zpsDU@MrJpxy@eBgm_Ma9Dl|n(B*YWci#87+Agt^2vrlyq}feDliJ-R~T?; zf8Wfrt)Ma6kI^w0zrhABayxh%WM9J_^BIa@=k0|DglTXG##7=^VMxe*PGbBMXsX9S zBb$Jolu9_{3~FTO5b6HlXG9M{FO;+Mq7#m|W!cYKDbk~l8~C&ZV< zkBPq&Z-~1Gyu*$zxL^A_93qI^UG$IRmUKM_w_=315z9N29 z<@I>-t7KPkAsmNg)fV>WSXEc__#|H^uPq0rz2Z5kx{6Aq{>C8Wf1m9dUsgZ#k>o&E hmEGkHm5;>3XS(KIQ1g-b=FiBK$4}L>r|0+^pg-FzcbfnJ diff --git a/srcs/charge.c b/srcs/charge.c index da4c91c..59ece3c 100644 --- a/srcs/charge.c +++ b/srcs/charge.c @@ -99,7 +99,46 @@ Offre **loadOffre(void) //--------------------------------------------------------------------------- -/*-----------------precedences----------------------*/ + +/*--------------precedences--------------*/ + +// cas de gros oeuvre avx space, onn a besoin de faire un readfromFile, mais sur \n et \t +// il faut donc rajouter un parametre a RFF qui sera la chaine des char qui pourons definir la fin d'un mot avec le fgets; +// mais dcp, il faut faire des fgets 1 par 1 pour etre sur de ne pas sauter les /t + + +// Chargement des précédences depuis un fichier +Precedence *loadPrec(int *tmax, int *tlog) +{ + printf("\n*-*-* LOADPREC *-*-*\n"); + FILE *prec; + Precedence *tabP, *s; + prec=fopen("files/précédences.txt", "r"); + if (prec == NULL) + { + printf("\033[0;31mErreur: \033[0mouverture de 'précédence.txt'\n"); + exit(1); + } + tabP = (Precedence *)malloc((*tmax) * sizeof(Precedence)); + while(!feof(prec)) + { + if(*tlog==*tmax) + { + (*tmax)+=5; + s = (Precedence *)realloc(tabP, (*tmax) * sizeof(Precedence)); + if (s==NULL) + { + printf("\033[0;31mErreur: \033[0mreallocation pour fichier précédence\n"); + exit(1); + } + tabP = s; + } + fscanf(prec, "%s%s", tabP[*tlog-1].travauxPrec, tabP[*tlog-1].travauxSucc); + (*tlog)++; + } + fclose(prec); + return tabP; +} // Chargement des tâches depuis un fichier pour chaque offre Tache **loadTaches(Offre *tabTravaux[]) @@ -138,38 +177,3 @@ Tache **loadTaches(Offre *tabTravaux[]) } return tabTache; } - -/*--------------precedences--------------*/ - -// Chargement des précédences depuis un fichier -Precedence *loadPrec(int *tmax, int *tlog) -{ - printf("\n*-*-* LOADPREC *-*-*\n"); - FILE *prec; - Precedence *tabP, *s; - prec=fopen("../files/précédence.txt", "r"); - if (prec == NULL) - { - printf("\033[0;31mErreur: \033[0mouverture de 'précédence.txt'\n"); - exit(1); - } - tabP = (Precedence *)malloc((*tmax) * sizeof(Precedence)); - while(!feof(prec)) - { - if(*tlog==*tmax) - { - (*tmax)+=5; - s = (Precedence *)malloc((*tmax) * sizeof(Precedence)); - if (s==NULL) - { - printf("\033[0;31mErreur: \033[0mreallocation pour fichier précédence\n"); - exit(1); - } - tabP = s; - } - fscanf(prec, "%s%s", tabP[*tlog-1].travauxPrec, tabP[*tlog-1].travauxSucc); - (*tlog)++; - } - fclose(prec); - return tabP; -} diff --git a/srcs/main.c b/srcs/main.c index cf899f3..3f34893 100644 --- a/srcs/main.c +++ b/srcs/main.c @@ -2,7 +2,10 @@ int main() { + Precedence *tabP; Offre **tabTravaux; + int p_tmax; + int p_tlog; tabTravaux = loadOffre(); for (int i = 0; i < TMAXTRAV; i++) @@ -12,5 +15,9 @@ int main() minTravaux(tabTravaux); + tabP = loadPrec(&p_tmax, &p_tlog); + + displayPrecedences(tabP, p_tlog); + return 0; } diff --git a/srcs/structures.c b/srcs/structures.c index 2dd74ca..8f7951e 100644 --- a/srcs/structures.c +++ b/srcs/structures.c @@ -222,7 +222,14 @@ void afficherDevisEntreprise(Offre **tabTravaux) free(nomEntreprise); } +void displayPrecedences(Precedence *tabP, int tlog) +{ + printf("Liste des précédences :\n"); + for (int i = 0; i < tlog; i++) { + printf("\t%s\t\t : \t%s\n", tabP[i].travauxPrec, tabP[i].travauxSucc); + } +} // Partie 4 (à trier)