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
| #include <stdio.h> //Appel de la librairie Input/Output
#include <stdlib.h> //Appel de la librairie Standard
#include <string.h> //Appel de la librairie String
#include "dblist.h" //Ajout des Listes Doublements Chainees
int main()
{
dblist *listeDC = malloc(sizeof(dblist)); //Declaration de la liste doublement chainee
Init(listeDC); //Initialisation de la liste doublement chainee
FILE *fichierDonnees = fopen("donnees.txt", "r"); //Déclaration et instanciation d'un pointeur de type fichier vers les donnees
char caractere; //Déclaration d'une variable caractere
int compteur; //Declaration et initialisation d'un compteur
int finDonnees = 0; //Déclaration et initialisation d'une variable "booleene" permettant d'arreter la lecture du fichier après avoir lu les donnees
char ligne[64]; //Espace temporaire pour récupérer une ligne d'un fichier
////Traitement des donnees////
if(fichierDonnees != NULL) //Ouverture du fichier réussie
{
// Lecture des lignes du fichier de donnees
puts("Ouverture fichier ok");
while((fgets(ligne, sizeof ligne, fichierDonnees) != NULL) && (finDonnees = 0))
{ //Tant que l'on peut lire une ligne du fichier et que la variable "booleene" finDonnees est a faux
puts("passage while");
caractere = ligne[0]; //Lecture du premier caractere de la ligne
if(caractere == '$'){ //Ligne de commentaire
puts("commentaire");
printf("Commentaire : %s",ligne); //Affichage du commentaire
}
else{ //Il s'agit d'une ligne de données
puts("donnees");
compteur = 0; //Initialisation du compteur de caracteres
while (caractere != '#'){ //Vérification de non fin de données atteinte
puts("lecture d'un caractère");
//printf("%c", caractere); //Affichage du caractère
PushBack(listeDC,caractere); //Ajout du caractère en dernière position de la liste
compteur++;
caractere = ligne[compteur];
}
if(caractere == '#'){ //Fin de données atteinte
finDonnees = 1; //Mise à "vrai" de la variable "booleene"
}
}
}
}
else
{
puts("pas lecture fichier");
if (feof(fichierDonnees)) //Fin de fichier detectee
{
puts("\nFin du fichier de donnees atteinte.");
}
if (ferror(fichierDonnees)) //Une erreur s'est produite
{
perror("donnees.txt");
}
}
fclose (fichierDonnees); //Fermeture du fichier de donnees
puts("lecture liste");
View(*listeDC); //Affichage de la liste doublement chainee
puts("fin lecture liste");
////Fin du traitement des donnees////
puts("finit");
} |