Conversion big-endian en litle-endian

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 490 fois - Téléchargée 44 fois

Contenu du snippet

lorsque l'on veut utiliser des données binaires créées à partir d'une station UNix, il est difficile de les lires avec un PC. Car les données binaires sont inversées. Sous station les données binaires sont de type Big-endian et sous PC de type Litle endian.(inversement des deux chaines d'octets). Donc voici un exemples de code permettant de lire du Big endian avec VB6. Je mesuis inspiré d'un code qui le faisait avec des long ici je le fait avec de integer cours(16 octets)

Source / Exemple :


Type intType
    L As Integer
End Type

Type DWordType 'division de l'integer en 2*8octets pour faire l'inversion
    High As Byte
    Low As Byte
End Type

Sub Swap(LE As Integer, swapwords As Integer)' procedure permettant d'inverser les 2*8Octets
    Dim TempLong As intType
    Dim TempDWord As DWordType
    Dim TempInt As Byte
    TempLong.L = LE
    LSet TempDWord = TempLong
    TempInt = TempDWord.High
    TempDWord.High = TempDWord.Low
    TempDWord.Low = TempInt
    LSet TempLong = TempDWord
    swapwords = TempLong.L
End Sub

Conclusion :


pour les integer long
il suffit de déclarer L, LE et Swapwords en long
et high,lowet tempint en integer

A voir également

Ajouter un commentaire Commentaires
Messages postés
2
Date d'inscription
mardi 29 janvier 2013
Statut
Membre
Dernière intervention
11 novembre 2008

Super, la conversion avec des short integer est parfaite, mais je n'arrive pas à transformer la routine pour les entiers longs SOS ! Merci
Messages postés
121
Date d'inscription
dimanche 9 mars 2003
Statut
Membre
Dernière intervention
29 avril 2009

Super! je l'ai à peine modifié, ça marche nickel! exactement ce que je cherchais pour les long!!!
Messages postés
10
Date d'inscription
dimanche 29 décembre 2002
Statut
Membre
Dernière intervention
17 mai 2004

euuuu désolé mé jcomprend pas trop ton truc tu pourrais me donner un exemple ???
d'utilisation?
je sait que en gros ca donne un truc du genre

000000FF
et FF000000
mais pour lutilisation de ton truc je pige pas
Messages postés
13
Date d'inscription
jeudi 13 juin 2002
Statut
Membre
Dernière intervention
19 septembre 2002

ah oui au fait
c'est pas 16 octets mais 2 octets de 8 bits chacun
Messages postés
235
Date d'inscription
mercredi 4 avril 2001
Statut
Membre
Dernière intervention
9 novembre 2007

fallait savoir... :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.