pb : caractere en trop lors de la lecture d'un fichier binaire
voila je vous solicite a nouveau pour un probleme que j'ai évoqué dans un message précédent mais ce n'était pas le sujet. dc voila j'essaye de lire des fichiers binaires dont le contenu est affiché sous forme de caracteres ascii et d'afficher ces caracteres dans un editbox. j'utilise le programme suivant pour lire chacun des fichier :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
void Read(HWND Dlg, char fileName[501])
{
//ouverture
ifstream is(fileName, ios_base::binary|ios_base::in);
char * buffer = NULL;
//recherche de la longueur
is.seekg(0, ios::end);
ifstream::pos_type length = is.tellg();
assert(length >= 0);
//Reading
is.seekg(0, ios::beg);
buffer = new char[length];
is.read(buffer, length);
Purity(buffer, length);
//Post in the editbox (IDC_TEXT)
SetDlgItemTextA(Dlg,IDC_TEXT, buffer);
delete[] buffer;
} |
la fonction Purity est la suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
void Purity(char *s, size_t taille)
{
for(int i=0 ; i<taille-1 ; i++)
{
char c = s[i];
//Change juste le caractère de contrôle NUL
//Laisse les caractères étendus (-128~-1 ou 128~255) inchangés.
if(c==0)
s[i] = '.';
}
} |
mon probleme est le suivant :
le programme m'affiche systematiquement des caracteres en trop comme ýýýýÝÝÝÝÝÝÝA ou ýýýýÝÝÝÝ ou encore ýýýýÝÝQ ça change pour chaque fichier et je ne comprend pas d'ou ça vient.
est ce que quelqu'un peut m'aider??
merci d'avance!