1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
| #include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define CARACTERE ':'
#define TAILLETAB 100
#define T 20
/* TODO Projet :
Charger le contenu du fichier (c'est une fonction) passé en paramètre. Pour cela tu lis le fichier ligne par ligne et tu parse chaque
ligne, c'est à dire, que tu va remplir pour chaque ligne une structure Personne qui représentera bien entendu
une personne en mémoire. Tous ces objets Personne que tu va remplir, tu vas les ranger dans une liste (liste chaîné)
ainsi à partir de cette liste tu devras pouvoir ajouter, supprimer une Personne, rechercher une personne par son
identifiant.
Et enfin tu ecrira une fonction pour sauvegarder ta liste de personne qui est en mémoire dans le fichier spécifié.
Et pour permettre à l'utilisateur d'effectuer les diverses actions ajouter, supprimer,... tu dois faire un menu.
je lis le fichier , les une ligne , je decoupe la ligne par separateur (:) , et (,) pour les identifiant des amis
Je me crée une structure Personne avec comme membres :
- Un identifiant (l'identifiant de la personne)
- Le nom
- Le prénom
- La liste (liste chaîné) d'identifiants d'amis OU la liste des struct Personne amis.
// on utilise 2 liste chainé : une pour les personne et une pour la liste d'identifiant des amis d'une personne
*/
struct listeAmis;
struct Personne {
unsigned long identifiant;
char nom[51];
char prenom[51];
struct Personne *listeAmis;
};
struct listeAmis {
struct Personne *pers;
struct listeAmis *amis;
};
//cette fonction ouvre et charge le contenu du fichier
void charger_fichier()
{
FILE* fichier = NULL;
int caractereActuel = 0;
int i=0;
char n=0;
char tab1[TAILLETAB]={0};
char tab2[TAILLETAB]={0};
int p=0;
struct Personne perso;
int champs =0;
fichier = fopen("test.txt", "r");
if (fichier != NULL)
{
caractereActuel = fgetc(fichier); // On initialise caractereActuel
// Boucle de lecture des caractères un à un
while (caractereActuel != EOF) // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
{
while(caractereActuel != EOF )
{
//CARACTERE=':'
if(caractereActuel != CARACTERE && caractereActuel!='\n')
{
printf("%c", caractereActuel); // On affiche le caractère stocké dans caractereActuel
tab1[n]=caractereActuel;
n++;
caractereActuel = fgetc(fichier); // On lit le caractère suivant
}
else{
if (champs==0){
printf("\nmon tableau-->\t");
p=0;
while(p<n){
printf("%c",tab1[0+p]);
//inserer les caracteres dans chaque champs de la structure
p++;
}
champs++;
}
else if(champs==1){
printf("\nmon tableau-->\t");
p=0;
while(p<n){
printf("%c",tab1[0+p]);
//inserer les caracteres dans chaque champs de la structure
perso.nom[p]=tab1[0+p];
p++;
}
champs++;
}
else if(champs==2){
printf("\nmon tableau-->\t");
p=0;
while(p<n){
printf("%c",tab1[0+p]);
//inserer les caracteres dans chaque champs de la structure
p++;
}
champs++;
}
else if(champs==3){
printf("\nmon tableau-->\t");
p=0;
while(p<n){
printf("%c",tab1[0+p]);
//inserer les caracteres dans chaque champs de la structure
p++;
}
champs++;
}
printf("\n");
//Essayer de recopier tout ce qui est lu avant sa dans un champs de la structure
n=0;
caractereActuel=fgetc(fichier);
}
}
//je suis sorti de la boucle donc la ligne entiere a été bien lu il faut les copier a partir du tableau dans ma structure
}
//sortie de boucle on est en fin de fichier
fclose(fichier);
}
else
{
printf("erreur le fichier na pa pu etre ouvert");
}
getchar();
}
int main(int argc, char *argv[])
{
/*
CODE LECTURE PARAMERTRE
*/
/*if(argc < 2)
{
printf("vous n'avez pas saisis de nom de fichier");
getchar();
}
else
{
/*
CODE MENU
*/
charger_fichier();
getchar();
//}
return 0;
} |
Partager