2010-10-11 3 views
1

Eh bien ma question est simple et directe.De toute façon nous pouvons travailler avec des octets hexadécimaux et des caractères comme en C++?

Existe-t-il un moyen d'utiliser des valeurs hexadécimales comme en C++?

Je vais écrire des fichiers binaires, mais pour cela je devrai définir certains caractères comme celui-ci par exemple.

\ x00 \ x00 \ x11 \ x22 \ x33 \ x00 \ x00

Je voudrais tout d'abord besoin de convertir des trucs comme ça à un tableau d'octets, puis l'écrire dans un fichier texte binaire.

Merci!

+0

Copie possible de [http://stackoverflow.com/questions/1335700/vb-net-hexadecimal-to-8-bit-unsigned-array]. –

Répondre

3

Non, c'est un problème avec les compilateurs modernes, comme VB.NET. Il n'y a plus de mappage un-à-un entre les octets et les chaînes lorsque Unicode est devenu le mode de gestion préféré du texte. Les points de code comme 0x80 n'ont pas de caractère correspondant, ils vont être grignotés quand vous convertissez la chaîne en octets.

Vous devrez utiliser un tableau Byte() dans votre code. L'équivalent exact de votre exemple est:

Dim data As Byte() = {&H0, &H0, &H11, &H22, &H33, &H0, &H0} 
+0

+1 @zeta, vous avez fait référence à un * fichier texte binaire * dans votre question. Si c'est un fichier * binaire *, vous devez le traiter comme un fichier binaire - n'essayez pas d'abuser des chaînes pour contenir des données binaires. – MarkJ

Questions connexes