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 :
la fonction Purity est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
mon probleme est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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] = '.'; } }
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!
Partager