Bonjour à tous,
je dois apres extraction des données dans un fichier binaire convertir des mots de 4 octets en décimal.
Pour ce faire j ai crée une structure qur voici:
Jusque là tout va bien puisque j'arrive à rescupérer mes 4 octets que je viens ensuite stocker dans un buffer de la manière suivant :
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 Public ils As trame_ILS Public Type Word_ILS bPoidsFaibles As Byte bPoidsForts As Byte bPoidsFaibles1 As Byte bPoidsForts1 As Byte End Type Public Type trame_ILS type_ILS As Word_ILS num_ILS As Word_ILS End Type
QUand je le décodage a la main je tombe bien sur la valeur désiré qui par exemple 885057083. J ai déclaré type1 en tant que long ( 32 bits). Et pourtant j ai un message d erreur " dépassement capacité".
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 With ils ils.num_ILS.bPoidsFaibles = buffer1(10) ils.num_ILS.bPoidsForts = buffer1(11) ils.num_ILS.bPoidsFaibles1 = buffer1(12) ils.num_ILS.bPoidsForts1 = buffer1(13) ' ensuite je decode mon mot de 4 octets hexadecimal en decimal type1 = ((ils.num_ILS.bPoidsForts1 * 256 * 256 * 256) + ils.num_ILS.bPoidsFaibles1 * 256 * 256) + ((ils.num_ILS.bPoidsForts * 256) + ils.num_ILS.bPoidsFaibles) MsgBox type1 End With
Pourtant la valeur décimale est toujours positive donc je devrais declarer un unsigned mais j ai pas trouvé sous vb .
Je pense que c'est un probleme au niveau de la variable type1 mais je ne vois pas comment la déclarer autrement.
SI vous aveez des idées.
Merci
Partager