Jonathan.
Jonathan.

Reputation: 55604

An array of array of bytes in VB.NET

I need an array and each item in the array is an array of bytes like this, but I'm not sure how to do the:

Dim xx as array

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

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

Upvotes: 6

Views: 40151

Answers (3)

imad
imad

Reputation: 11

You can solve your problem with the following VB.NET example. Just drag and drop one button and one textbox. The code will be as follows inside the button click event:

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

Upvotes: 0

SLaks
SLaks

Reputation: 888293

You can make a nested or "jagged" byte array like this:

Dim myBytes(6)() As Byte

This will create an empty array of 6 byte arrays. Each element in the outer array will be Nothing until you assign an array to it, like this:

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

However, it would probably be a better idea to make a List of byte arrays, like this:

Dim myBytes As New List(Of Byte())

This will create an empty list of byte array, which will stay empty until you put some byte arrays into it, like this:

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

Unlike the nested array, a List(Of Byte()) will automatically expand to hold as many byte arrays as you put into it.

For more specific advice, please tell us what you're trying to do.

Upvotes: 11

Eilon
Eilon

Reputation: 25704

Please refer to this MSDN topic for more details.

Here's the code to define a multidimensional array:

Dim lotsaBytes(2,4) As Byte

And to initialize it:

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

Upvotes: 2

Related Questions