[C/C++] Lecture d'un fichier

krboktion Messages postés 6 Date d'inscription dimanche 29 août 2004 Statut Membre Dernière intervention 12 novembre 2004 - 1 nov. 2004 à 23:07
krboktion Messages postés 6 Date d'inscription dimanche 29 août 2004 Statut Membre Dernière intervention 12 novembre 2004 - 12 nov. 2004 à 21:10
Bonjour, je travail sur un fichier qui doit pouvoir me lire n'importe quel type de fichier, pour mes tests j'ai utilisé un banal fichier .txt dans lequel j'avais recopier un texte, je disais à mon programme de m'ouvrir le fichier de sauvegarder dans un tableau puis d'afficher mot par mot la totalité de mon fichier à l'écran, le but était de vérifier qu'il passait au crible tous les mots de mon fichier, ce qu'il fait dans le cas de mon .txt. Ensuite j'ai prix un banal fichier de windows, j'ai rentété le coup, et là, pas de bol il veut pas m'afficher la totalité du fichier, il m'affiche des brides.
je sais pas pourquoi... je travail sous windev en C, tout aide sera la bienvenue, si pour certain je devrais plutot travailler en C++ je suis prêt à revoir mon code, seulement travailler sur les fichiers c nouvo pour moi..

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SEP " "

int main(int argc, char *argv[])
{
/*<--- Variables */
char *nomdufichierlu;
nomdufichierlu = "krboktion@hotmail.com - Courrier indésirable.dbx";
FILE *fichierlu;
fichierlu = fopen(nomdufichierlu, "r" );
char *mot;
char msg[200];
/* Variables --->*/

/*<--- Test sur l'existence des fichiers*/
if (fichierlu==NULL) {
printf("Impossible d'ouvrir le fichier %s\n", nomdufichierlu);
system("PAUSE");
return 0;
}
/*Test sur l'existence des fichiers --->*/

fseek (fichierlu, 0, SEEK_SET); //On se place au début

/*<--- Lecture pui écriture à l'écran du fichier*/
while( ! feof(fichierlu) ) {
fgets( msg, sizeof(msg), fichierlu);
mot=strtok(msg,SEP);

while(mot != NULL)
{
printf("%s\n",mot);
mot = strtok(NULL,SEP);
}
}
/*Lecture pui écriture à l'écran du fichier --->*/


system("PAUSE");
return 0;
}

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
2 nov. 2004 à 09:00
ouvre le texte en mode binaire :
fichierlu = fopen(nomdufichierlu, "rb" );
0
krboktion Messages postés 6 Date d'inscription dimanche 29 août 2004 Statut Membre Dernière intervention 12 novembre 2004
12 nov. 2004 à 21:10
merci, dsl pour le temps de réponse j'ai mom modem k-put, par contre j'ai continué de travailler sur ce bout de code, j'utilise une petite astuce qui marche, dès que je detecte une soit disante fin de fichier, je fais déplacer le curseur de un pas, et je relis la séquence, le problème dans ce cas c'est que dès que je trouve la véritable fin du fichier, le curseur se deplace indéfiniment, j'ai donc décidé de manière arbitraire (en utilisant un compteur) que dès que je détecte (par exmple) 20 fin de fichier successive, je considère que c'est la fin du fichier, si cela interresse quelqu'un dès que mon code est finis je le mettrai sur le site, en fait il s'agit de trouver des séquences de caractères dans un fichier, c'est rien de super, mais bon ça peut toujours servir... sinon je regarderais ce Week-end avec ton idée d'ouvrir le fichier en binaire
+++
0
Rejoignez-nous