2009-12-31 8 views
2

je besoin d'un tableau et chaque élément du tableau est un tableau d'octets comme ça, mais je ne suis pas sûr de savoir comment faire le:Un tableau de tableau d'octets dans VB.NET

Dim xx as array 

xx(0) *as byte* = {&H12, &HFF} 

xx(1) *as byte* = {&H45, &HFE} 
+4

Juste une remarque que cela est presque toujours une mauvaise idée. Les tableaux d'octets ont leur place, mais au moment où vous commencez à penser à un tableau de tableaux d'octets, vous devriez vraiment penser à une collection de tableaux d'octets à la place. Utilisez quelque chose comme une liste . –

Répondre

8

Vous pouvez faire un tableau imbriqué ou octet "en dents de scie" comme ceci:

Dim myBytes(6)() As Byte 

Cela va créer un tableau vide de tableaux de 6 octets. Chaque élément du tableau externe sera Nothing jusqu'à ce que vous attribuez un tableau à elle, comme ceci:

myBytes(0) = New Byte() { &H12, &Hff } 

Cependant, il serait probablement une meilleure idée de faire un List de tableaux d'octets, comme ceci:

Dim myBytes As New List(Of Byte()) 

cela va créer une liste vide de tableau d'octets, qui restera vide jusqu'à ce que vous mettez quelques tableaux d'octets en elle, comme ceci:

myBytes.Add(New Byte() { &H12, &Hff }) 

Contrairement à la tableau imbriqué, un List(Of Byte()) se développera automatiquement pour contenir autant de tableaux d'octets que vous y mettez.

Pour des conseils plus spécifiques, dites-nous ce que vous essayez de faire.

2

S'il vous plaît référez-vous au this MSDN topic pour plus de détails.

Voici le code pour définir un tableau multidimensionnel:

Dim lotsaBytes(2,4) As Byte 

Et pour l'initialiser:

Dim lotsaBytes(,) As Byte = New Byte(2, 4) {{1, 2}, {3, 4}, {5, 6}, {7, 8}} 
0

Vous pouvez résoudre votre problème avec l'exemple VB.NET suivant. Faites simplement glisser un bouton et une zone de texte. Le code sera le suivant dans l'événement click bouton:

Private Sub btnCalcBcc_Click(sender As System.Object, e As System.EventArgs) Handles btnCalcBcc.Click 
     Dim BCC As Int16 
     Dim Bcc2 As Int16 
     Dim arr() As Byte = {&H1B, &H58, &H41, &H42, &H43, &H44, &H45, &H46, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H17, &H0, &H0, &H0, &H0} 

     For i As Integer = 0 To arr.Length - 1 
      BCC = BCC Xor arr(i) 
      BCC = BCC << 1 
      Bcc2 = (BCC >> 8) 
      Bcc2 = Bcc2 And &H1 
      BCC = BCC + Bcc2 
     Next 
     txtBCC.Text = BCC 
End Sub 
+3

Il est préférable de laisser les gens vous donner des commentaires en public ici sur Stack Overflow, afin que tout le monde puisse en bénéficier, que privé à vous par e-mail. –

Questions connexes