Bonjour,
J'ai un buffer du type unsigned char buffer[256] qui contient une chaîne hexa.
Je voudrais convertir ce buffer en CString pour pouvoir afficher les valeurs hexas.
Merci par avance pour vos conseils!
Version imprimable
Bonjour,
J'ai un buffer du type unsigned char buffer[256] qui contient une chaîne hexa.
Je voudrais convertir ce buffer en CString pour pouvoir afficher les valeurs hexas.
Merci par avance pour vos conseils!
Tu veux dire un buffer qui contient des données brutes, et les afficher sous forme hexa ?
Le mieux, c'est un truc du genre:
Note: Ce code nécessite une version pas-trop-vieille (lire: Pas Visual 6) de MFC.Code:
1
2
3
4
5
6
7
8
9
10
11
12 CString ToHexBytes(void const *pcvData, size_t cbSize) { unsigned char const *pcData = static_cast< unsigned char const * >(pcvData); CString ret; ret.Preallocate(cbSize*3); for(size_t i=0 ; i<cbSize ; i++) { ret.AppendFormat(_T("%02X "), pcData[i]); } ret.TrimRight(); return ret; }
hello,
hé bien justement, je travaille sous Visual 6!! :?
En fait j'ai trouvé ma réponse dans un ancien topic du forum:
Merci tout de même pour ta réponse ;)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 for (int n = 0; n < sLongueurBuffer; n++) { unsigned char ucMSB, ucLSB; ucMSB = (*(tucBuffer + n)) >> 4; ucLSB = (*(tucBuffer + n)) & (0x0F); (ucMSB < 10)? ucMSB += 0x30 : ucMSB += 0x41; (ucLSB < 10)? ucLSB += 0x30 : ucLSB += 0x41; szChaine.Insert(2*n + n, ucMSB); szChaine.Insert(2*n + n + 1, ucLSB); szChaine.insert(2*n + n + 2, " "); }