tester fichier vide ou non

Le
jaoued nasri
Bonjour,

J'ai un fichier qui est généré dans le programme. Ce fichier peut ê=
tre
vide ou non.
Je voulais tester si le fichier est vide ou non
si le fichier est non vide alors je vais lire de ce fichier et faire
des traitements si non rien faire.

Ce fichier contient deux champs: un numero (entier) et une valeur
( chaine de caractère).

Lorsque je lance l'exécution alors j'ai une exception
Je fais le débogage alors j'ai localisé l'erreur est quand le fichier
est vide alors le programme ne peut pas exécuter l'instruction
suivante:

<code type="c">
..

while (fgets(sLine, MAXLINE, fp))
{
sscanf(sLine,"%d%s",&obj,att);

.

</code>

Que proposez vous ?

Merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Christian ASTOR
Le #20243471
On 28 sep, 14:27, jaoued nasri
J'ai un fichier qui est généré dans le programme. Ce fichier peut être
vide ou non.
Je voulais tester si le fichier est vide ou non
si le fichier est non vide alors je vais lire de ce fichier et faire
des traitements si non rien faire.



Déjà répondu ...
http://tinyurl.com/yayapxh
programmation
Le #20244191
> Déjà répondu ...http://tinyurl.com/yayapxh



J'ai un fichier qui est généré dans le programme. Ce fichier peut ê tre
vide ou non.
Je voulais tester si le fichier est vide ou non
si le fichier est non vide alors je vais lire de ce fichier et faire
des traitements si non rien faire.

Ce fichier contient deux champs: un numero (entier) et une valeur
( chaine de caractère).

Lorsque je lance l'exécution alors j'ai une exception
Je fais le débogage alors j'ai localisé l'erreur est quand le fichier
est vide alors le programme ne peut pas exécuter l'instruction
suivante:

Voici une partie de code:

#define MAX 1024
int main()
{
FILE *fp;
char sLine[MAX], att[32];
int obj;

fp = fopen("exemple.txt","r");

if(fp== NULL)
exit(0);

// il faut faire un test ici .... ?

while (fgets(sLine, MAXLINE, fp))
{
sscanf(sLine,"%d%s",&obj,att);

...........
.........
}
.......
return 0;

}


Je n'arrive pas à adapter la fonction stat.st_size dans man cas ?

Pouvez vous poser la solution ?

Merci.
Jean-Claude BELLAMY
Le #20244601
"jaoued nasri" discussion :

Bonjour,

J'ai un fichier qui est généré dans le programme. Ce fichier peut être
vide ou non.
Je voulais tester si le fichier est vide ou non



Fonction GetFileSizezEx, tout simplement !

The GetFileSizeEx function retrieves the size of a specified file.


BOOL GetFileSizeEx(
HANDLE hFile,
PLARGE_INTEGER lpFileSize
);

Parameters
hFile
[in] Handle to the file whose size is to be returned. The handle must have
been created with either the GENERIC_READ or GENERIC_WRITE access right. For
more information, see File Security and Access Rights.
lpFileSize
[out] Pointer to a LARGE_INTEGER structure that receives the file size.
Return Values

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
programmation
Le #20245151
On 28 sep, 15:56, "Jean-Claude BELLAMY" <Jean-
wrote:
"jaoued nasri" discussion :


> Bonjour,

> J'ai un fichier qui est généré dans le programme. Ce fichier peut être
> vide ou non.
> Je voulais tester si le fichier est vide ou non

Fonction GetFileSizezEx, tout simplement !

The GetFileSizeEx function retrieves the size of a specified file.

BOOL GetFileSizeEx(
  HANDLE hFile,
  PLARGE_INTEGER lpFileSize
);

Parameters
hFile
[in] Handle to the file whose size is to be returned. The handle must hav e
been created with either the GENERIC_READ or GENERIC_WRITE access right. For
more information, see File Security and Access Rights.
lpFileSize
[out] Pointer to a LARGE_INTEGER structure that receives the file size.
Return Values

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]http://www.bellamyjc.org ouhttp://jc.bellamy.f ree.fr





j'ai fait le test suivant mais en cas de fichier vide le programme
génère une exception :

while (fgets(sLine, MAXLINE, pFTrie)!=NULL)
{
sscanf(sLine,"%d%s",&objet,attribut);
printf("objet=%d attr=%sn",objet,attribut);
}

Je ne sais pourquoi le programme entre dans la boucle 'while' même si
le fichier est vide ?

Je n'arrive pas à résoudre ce problème.

Pouvez vous poser le code source de la solution à ce problème ?

Merci.
Jean-Claude BELLAMY
Le #20245451
"programmation" discussion :

On 28 sep, 15:56, "Jean-Claude BELLAMY" <Jean-
wrote:
"jaoued nasri" discussion :


> J'ai un fichier qui est généré dans le programme. Ce fichier peut être
> vide ou non.
> Je voulais tester si le fichier est vide ou non

Fonction GetFileSizezEx, tout simplement !

The GetFileSizeEx function retrieves the size of a specified file.

BOOL GetFileSizeEx(
HANDLE hFile,
PLARGE_INTEGER lpFileSize
);







j'ai fait le test suivant mais en cas de fichier vide le programme
génère une exception :

while (fgets(sLine, MAXLINE, pFTrie)!=NULL)
{
sscanf(sLine,"%d%s",&objet,attribut);
printf("objet=%d attr=%sn",objet,attribut);
}

Je ne sais pourquoi le programme entre dans la boucle 'while' même si
le fichier est vide ?

Je n'arrive pas à résoudre ce problème.


??????????????

Teste la taille du fichier (avec GetFileSizeEx), et si tu trouves zéro tu
sautes la boucle!


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Publicité
Poster une réponse
Anonyme