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 : 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;
}
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
 
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!