You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
3.5 KiB

/**
* \file Ouverture.c
* \brief Contient les fonctions d'ouverture des fichiers
* \author
*/
#include "Fonctions.h"
/**
* \brief Appelle les fonctions d'ouverture
* \author
* \param tNoCarte tableau contenant les numéros de toutes les cartes
* \param tAge tableau contenant les âges des membres
* \param tPointsCarte tableau qui contient le nombre de points restants sur chaque carte
* \param tCarteActive tableau qui contient l'état de chaque carte
* \param tNbActivitesJour tableau qui contient le nombre d'activité par jour
* \param tDate tableau qui contient les dates
* \param tMax taille physique des tableaux
* \param pasAct pointeur contenant la taille logique des tableaux des activités
* \return la taille logique des tableaux des membres
*/
int Ouverture(int tNoCarte[], int tAge[], int tPointsCarte[], int tCarteActive[], int tNbActivitesJour[], int tDate[], int tMax, int *pasAct)
{
int pasMembres;
pasMembres = OuvertureMembres(tNoCarte, tAge, tPointsCarte, tCarteActive, tMax);
*pasAct = OuvertureActivitesJour(tNbActivitesJour, tDate, tMax);
return pasMembres;
}
/**
* \brief Charge les données du fichier membres.don dans des tableaux
* \author
* \param tNoCarte tableau contenant les numéros de toutes les cartes
* \param tAge tableau contenant les âges des membres
* \param tPointsCarte tableau qui contient le nombre de points restants sur chaque carte
* \param tCarteActive tableau qui contient l'état de chaque carte
* \param tMax taille physique des tableaux
* \return la taille logique des tableaux
*/
int OuvertureMembres(int tNoCarte[], int tAge[], int tPointsCarte[], int tCarteActive[], int tMax)
{
int i = 0;
int noCarte, age, pointsCarte, carteActive;
FILE *flot;
flot = fopen("membres.don", "r");
if (flot == NULL)
{
printf("Problème d'ouverture du fichier membres.don en lecture.\n");
return -1;
}
fscanf(flot, "%d%d%d%d", &noCarte, &age, &pointsCarte, &carteActive);
while (!feof(flot))
{
if (i == tMax)
{
printf("Tableau plein.\n");
fclose(flot);
return -1;
}
tNoCarte[i] = noCarte;
tAge[i] = age;
tPointsCarte[i] = pointsCarte;
tCarteActive[i] = carteActive;
fscanf(flot, "%d%d%d%d", &noCarte, &age, &pointsCarte, &carteActive);
i++;
}
fclose(flot);
return i;
}
/**
* \brief Charge les données du fichier ActivitesJour.don dans des tableaux
* \author
* \param tNbActivitesJour tableau qui contient le nombre d'activité par jour
* \param tDate tableau qui contient les dates
* \param tMax taille physique des tableaux
* \return la taille logique des tableaux
*/
int OuvertureActivitesJour(int tNbActivitesJour[], int tDate[], int tMax)
{
int i = 0;
int date, nbActivitesJour;
FILE *jour;
jour = fopen("ActivitesJour.don", "r");
if (jour == NULL)
{
printf("Problème d'ouverture du fichier ActivitesJour.don en lecture.\n");
return -1;
}
fscanf(jour, "%d%d", &date, &nbActivitesJour);
while (!feof(jour))
{
if (i == tMax)
{
printf("Tableau plein.\n");
fclose(jour);
return -1;
}
tDate[i] = date;
tNbActivitesJour[i] = nbActivitesJour;
fscanf(jour, "%d%d", &date, &nbActivitesJour);
i++;
}
fclose(jour);
return i;
}