Aide en C (fopen, fgets, strtok...)

Fermé
nystic - 14 mars 2002 à 18:59
 Mustapha - 15 avril 2011 à 15:43
Bonjour
j'ai besoin d'aide assez rapidement ....
je veux récupérer du texte dans un fichier log entre 2 champs date
ex du fichier log:
13/03/2002
texte
texte
14/03/2002
texte
...

Si possible je voudrais d'abord avoir un tableau avec les dates puis suivant la date sélectionné, le texte correspondant s'affiche.

Je vous remercie d'avance(bonne récompense)
Nystic

1 réponse

Le plus simple c'est que ton fichier soit écrit de telle façon que tu ai une information par ligne, mais j'ai l'impression que c'est le cas vu ce que tu as écrit.
Dans l'exemple qui suit je t'ai mis comment ouvrir et fermer un fichier (sans entrer dans les détails de la structure FILE* qui est nécessaire aux fichiers) et comment simplement lire et écrire dedans à raison d'une ligne à la fois (c'est ce qu'il y a de plus simple à mon avis).
Après il te reste plus qu'à formater les données que tu récupères comme bon te semble, inserer dans un tableau, comparaison de chaine, etc.
Mais je ne vais pas te faire tout le boulot non plus !!! :)

Voila tu me diras si ça te conviens, si tu veux plus d'explication n'hésites pas mais je pense avoir été assez clair et assez complet.

Ciao bon courage.
Ben.

main()
{
FILE *P_FICHIER; /* pointeur sur FILE */
char NOM_FICHIER[30], DONNEES[30];
int C,NB_ENREG;

/* Première partie :
Créer et remplir le fichier */

printf("Entrez le nom du fichier à créer : ");
scanf("%s", NOM_FICHIER);

/* Ouverture du fichier en écriture */
P_FICHIER = fopen(NOM_FICHIER, "w");
printf("Nombre d'enregistrements à créer : ");
scanf("%d", &NB_ENREG);
C = 0;
while (C<NB_ENREG)
{
printf("Entrez vos paramètres : ");
scanf("%s", DONNEES);

/* Insertion des données utilisateur (utilisation quasi-identique au printf classique */
fprintf(P_FICHIER, "%s\n", DONNEES);
C++;
}

/* Fermeture du fichier !!! A ne surtout pas oublier !!!*/
fclose(P_FICHIER);

/* Deuxième partie :
Lire et afficher à l'écran le contenu du fichier */

/* Ouverture du fichier en lecture */
P_FICHIER = fopen(NOM_FICHIER, "r");
C = 0;

/* Fin du fichier atteint ? */
while (!feof(P_FICHIER))
{
/* Lecture des données dans le fichier */
fscanf(P_FICHIER, "%s\n", NOM_PERS);

/* Affichage à l'écran */
printf("NOM : %s\n", NOM_PERS);
C++;
}
/* Fermeture du fichier !!! A ne surtout pas oublier !!!*/
fclose(P_FICHIER);
return 0;
}
2
Merci c'est très intéressant
0