|
|
|
@ -5,6 +5,14 @@
|
|
|
|
|
|
|
|
|
|
#include "specification1.h"
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Charge les données des devis d'un fichier dans l'Offre
|
|
|
|
|
* @param offre L'offre dans laquelle stocker les données
|
|
|
|
|
* @param fichier Le fichier à lire
|
|
|
|
|
* @return int Le nombre de devis chargés (-1 si erreur d'ouverture, -2 si en-tête invalide)
|
|
|
|
|
* @see lireDevis()
|
|
|
|
|
* @see insererDevis()
|
|
|
|
|
*/
|
|
|
|
|
int chargement(Offre *offre, char fichier[])
|
|
|
|
|
{
|
|
|
|
|
FILE *flot;
|
|
|
|
@ -23,15 +31,36 @@ int chargement(Offre *offre, char fichier[])
|
|
|
|
|
return -2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
offre = (Offre*)malloc(tLog*sizeof(Offre));
|
|
|
|
|
char typeTravaux[30];
|
|
|
|
|
//TODO Fonction insererDevis(Devis d, Offre *o, char typeTravaux[])
|
|
|
|
|
for(int i = 0; i < tLog; i++)
|
|
|
|
|
offre[i] = lireDevis(flot);
|
|
|
|
|
{
|
|
|
|
|
Devis d;
|
|
|
|
|
lireDevis(flot, &d, typeTravaux);
|
|
|
|
|
insererDevis(d, offre, typeTravaux);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fclose(flot);
|
|
|
|
|
return tLog;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Offre lireDevis(FILE *flot)
|
|
|
|
|
/**
|
|
|
|
|
* @brief Lit un seul devis et le stocke dans la structure Devis
|
|
|
|
|
* @param flot Le fichier à lire
|
|
|
|
|
* @param devis La structure Devis dans laquelle stocker les données
|
|
|
|
|
* @param typeTravaux Le type de travaux
|
|
|
|
|
* @return void
|
|
|
|
|
*/
|
|
|
|
|
void lireDevis(FILE *flot, Devis *devis, char *typeTravaux)
|
|
|
|
|
{
|
|
|
|
|
//TODO
|
|
|
|
|
char ligne[102];
|
|
|
|
|
fscanf(flot, "%s", typeTravaux);
|
|
|
|
|
fgets(devis->entreprise, 28, flot);
|
|
|
|
|
|
|
|
|
|
fgets(ligne, sizeof(ligne), flot);
|
|
|
|
|
sscanf(ligne, "%d %[^0-9] %d %s", &devis->adresse.numero, devis->adresse.rue, &devis->adresse.codePostal, devis->adresse.ville);
|
|
|
|
|
|
|
|
|
|
fscanf(flot, "%d", &devis->capital);
|
|
|
|
|
fscanf(flot, "%d", &devis->duree);
|
|
|
|
|
fscanf(flot, "%d", &devis->cout);
|
|
|
|
|
}
|