Problème avec fgetc

cs_Were Messages postés 1 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 13 février 2006 - 13 févr. 2006 à 23:07
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013 - 14 févr. 2006 à 10:28
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

bayeto Messages postés 224 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 18 octobre 2010
14 févr. 2006 à 00:21
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 :)
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
14 févr. 2006 à 10:28
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
0
Rejoignez-nous