Problème avec fgetc

Signaler
Messages postés
1
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
13 février 2006
-
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
-
Afin de réaliser un encodeur de fichier, j'ai besoin d'avoir
l'occcurrence de chaques caractères présent dans ce fichier. Pour cela
j'ai creer ce code qui stock chaque occurence dans un tableau :



if (fSource!=NULL)

{

while (!feof(fSource))

{

chLus = fgetc(fSource);

if (chLus!=EOF)

{

tableauFreqence[chLus]++;

}

}

fclose(fSource);

}



Ce code est très lent et ne fonctionne qu'avec des fichiers textes. En
prennant d'autre genres de fichiers la fonction fgetc m'oublie des
caractères. J'ai le même problème en utilisant fread. J'aimerai savoir
si quelqu'un aurait déjà réaliser une fonction similaire. Merçi d'avance

2 réponses

Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

Le fichier est bien ouvert en binaire ("rb") ?
Pour ton problème de lenteur essaye un buffer: tu le rempli avec les données du fichier et tu le parcoure tranquile pour tes stats :)
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Normal que se soit lent, tu récupères caractères par caractères!!!!
Regarde plutot du coté de l'API : CreateFile(), ReadFile(), CloseHandle().

Plutot que de lire octet par octet, lis par bloc et fait ensuite ton traitement d'encodage dessus.

Shell