Parcourir un tableau binaire-URGENT

cs_miriame Messages postés 40 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 18 novembre 2005 - 17 août 2005 à 17:47
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 17 août 2005 à 19:17
Bonjour tout le monde
je cherche à parcourir un tableau biniare jusqu'a trouver le caractere "D"
en convertissant chaque case du tableau en hexadecimale.
for i=0 to tab.length-1 "ne marche pas pour un tableau binaire
j'ai commencé à rediger un bout de code mais ca ne marche pas,merci de m'aider:


longueur = UBound(arrByte) - LBound(arrByte) + 1
For i = 0 To longueur
position = arrByte(i).IndexOf(chemin)
arrbyte(i)= hex(asc(arrbyte(i)))
If position >= 0 Then Exit For
Next i

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 août 2005 à 18:53
Salut
Alors, ce que tu appelles un 'tableau binaire', c'est quoi ?
En fait, je pense que tu parles d'un tableau de bytes = octets, ce n'est pas pareil.

Le caractère 'D' en hexa = Val("&h" & "D") --> 13 décimal
Ton début était (à peu près) correct, mais je ne vois pas trop ce que tu as essayé de faire dans tes tests !

Ton tableau commence à LBound(arrByte) et se termine à UBound(arrByte)
Donc, le For-Next à faire est le suivant :
For i = LBound(arrByte) To UBound(arrByte)

Ensuite, pour tester dans ta boucle si la valeur de ton byte est bien D:hexa ou 13:décimal :
If arrByte(i) = 13 Then
ou If arrByte(i) = Val("&h" & "D") Then
La valeur d'un Byte renvoyée par VB te sera toujours fourni en décimal.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
17 août 2005 à 19:17
si tu veux rechercher le caractère "D" dans un tableau de Bytes:








Dim arrByte(3) As Byte

Dim s As String

Dim i As Integer



arrByte(0) = 65

arrByte(1) = 66

arrByte(2) = 67

arrByte(3) = 68



'soit parcourir tout le tableau

For i = LBound(arrByte) To UBound(arrByte)

If arrByte(i) = Asc("D") Then Exit For

Next

If i <= UBound(arrByte) Then MsgBox arrByte(i)



'ou plus rapide

s = StrConv(arrByte, vbUnicode)

i = InStr(s, "D")

If i > 0 Then MsgBox arrByte(i - 1)


Daniel
0
Rejoignez-nous