Taille d'un fichier et avancement
Bonjour à tous,
j'ai un programme qui lit des lignes d'un fichier. Dans un but de confort j'ai mis en place un système de comptage.
Code:
1 2 3 4 5
|
double taillefichier;
double compteur = 0;
int pourcent = 0;
int palier = 0; |
ces variables sont initialisées comme suit :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
//pour connaitre la taille du fichier (l'ouverture du fichier est vérifiée)
fseek(fichier1 , 0, SEEK_END ); //On trouve la fin du fichier
taillefichier = ftell(fichier1);
fseek(fichier2 , 0, SEEK_END ); //On trouve la fin du fichier
taillefichier += ftell(fichier2);
//initialisation boucle
rewind(fichier2);
rewind(fichier1);
//...code...
//a chaque fois qu'une ligne est lue
fgets(donnee1, 100, fichier1);
compteur += sizeof(char) * strlen(donnee1);
//...code... |
et enfin pour l'affichage de la progression du traitement tous les 5% :
Code:
1 2 3 4 5 6 7 8 9 10
|
//à chaque fin de boucle
pourcent = compteur/taillefichier*100;
//comptage des infos pour avoir un ordre d'idee de l'avancement
if(((pourcent % 5) == 0)&&(palier != pourcent))
{
printf("\n%d%c des lignes ont ete traitees.", pourcent, 37);
palier = pourcent;
} |
Le problème est que le pourcentage rendu va bien au-delà de 100%, la boucle s'arrête vers 140%... quelqu'un pourrait m'expliquer pourquoi?
merci