Lecture fichier .sol

[Résolu]
Signaler
Messages postés
606
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
13 décembre 2006
-
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
-
Salut,

En fait je cherche à faire une toute petite appli en C qui lit un fichier .sol (sorte de cookie généré par flash). Voila mon code :

char c;
int i = 0;
FILE *f; if ((f fopen("C:\\tmp_import.sol", "rb")) NULL)
{
printf("Impossible d'ouvrir le fichier données en lecture\n");
exit(1);
}

while ((c = fgetc(f)) != EOF) {
i++;
printf("%i\t%c\n", i, c);
}

Le fichier .sol est presque un fichier texte : je l'ouvre avec le bloc-notes et presque tous les caractères passent.
A l'execution rien ne se passe. Apparemment le probleme vient du fgetc parce que je n'ai pas de message d'erreur du fopen.

Qqun aurait il une solution a proposer ?
Merci pour vos réponses.

John Doe

9 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
scanf("%80s", nom );
printf("\n---analyse du fichier---\n");
fichier = fopen( nom , "r" ) ;
if ( ! fichier ){
printf("\n---erreur d'ouverture de fichier---\n");
exit(1);
}
while(1){
fscanf(fichier, "%c", &fich[i]);
i++;
if (feof(fichier)) break;
}
printf("\n---Fin du fichier---\n");
tfile=i;
if (fclose(fichier)) {
printf("\n---erreur de fermeture de fichier---\n");
exit(1);
}

si c'est un fichier en mode texte alors autant tout faire en texte...
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
coucou747 >
if (feof(fichier)) break; en s'en fou de ca, c'est EOF qui indique une erreur

John_Doe_88 > tu connais pas la structure du fichier ?
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
eh ça dépends de comment tu le fais !!!
moi j'ai mis while (1)
donc j'ai besoin d'un bloquant !!!
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
eh ça dépends de comment tu le fais !!!
moi j'ai mis while (1)
donc j'ai besoin d'un bloquant !!!
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
eh ça dépends de comment tu le fais !!!
moi j'ai mis while (1)
donc j'ai besoin d'un bloquant !!!
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
eh ça dépends de comment tu le fais !!!
moi j'ai mis while (1)
donc j'ai besoin d'un bloquant !!!
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
coucou747 > le probleme c'est comme beaucoup, tu crois que feof à une utilité dans ce cas, et bien ca sert à rien

ca permet juste de savoir si on est en fin de fichier, utile quand le flux est en erreur et qu'on veut savoir pourquoi

Because the EOF value returned by many input functions may indicate either the End-Of-File or an error, this function should be called to ensure the End Of File has been reached.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
...
sans ça je reste dans une boucle infinit...
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
voila, il suffit juste de verifier le code retour de ta fonction de lecture (ca peut etre EOF en cas d'erreur par exemple)