Solved

filling multidementional arrays in VB

Posted on 2009-07-08
4
317 Views
Last Modified: 2012-05-07
I have a multidimentional array I want to fill. I'm doing it explicitly:
(see code below)

I was wondering if I could fill each row like this:

        BitRateArray(0) = {32, 32, 32, 32, 8}

Dim BitRateArray(14, 5) As Integer
 
   '32 32 32 32 8 
        BitRateArray(0, 0) = 32
        BitRateArray(0, 1) = 32
        BitRateArray(0, 2) = 32
        BitRateArray(0, 3) = 32
        BitRateArray(0, 4) = 8
 
        '64 48 40 48 16 
        BitRateArray(1, 0) = 64
        BitRateArray(1, 1) = 48
        BitRateArray(1, 2) = 40
        BitRateArray(1, 3) = 48
        BitRateArray(1, 4) = 16
 
        '96 56 48 56 24 
        BitRateArray(2, 0) = 96
        BitRateArray(2, 1) = 56
        BitRateArray(2, 2) = 48
        BitRateArray(2, 3) = 56
        BitRateArray(2, 4) = 24
...

Open in new window

0
Comment
Question by:zliminator
  • 3
4 Comments
 
LVL 20

Expert Comment

by:alainbryden
ID: 24804462
Are you working in VB 6 or VB.NET?

--
Alain
0
 
LVL 20

Accepted Solution

by:
alainbryden earned 125 total points
ID: 24804490
If you're using VB.net you can use:

--
Alain
Dim BitRateArray(,) As Integer = {{32, 32, 32, 32, 8 }, _
                                  {64, 48, 40, 48, 16},
                                  {96, 56, 48, 56, 24}}

Open in new window

0
 
LVL 20

Expert Comment

by:alainbryden
ID: 24804570
After a quick check to be sure, VB6 or earlier doesn't provide any way to declare an array and initialize its elements at the same time. In most cases you end up doing it by setting individual elements as you have.

One way you can create an array of variants on the fly is to go.
Dim varArray() As Variant
varArray() = Array(32, 32, 32, 32, 8)

I'm not sure, but you can probably extend that to go:
Dim varArray() As Variant
varArray() = Array(  Array(32, 32, 32, 32, 8)
                                  Array(64, 48, 40, 48, 16)
                                  Array(96, 56, 48, 56, 24) )
You would then end up referencing elements as varArray(1)(1).

You could also use this in conjunction with a custom function to return an integer array. Details on this method are here http://www.devx.com/vb2themax/Tip/18322, and could probably be adapted to work with a 2D integer array.

Not sure that it gets any better than that with VB6

--
Alain
0
 

Author Closing Comment

by:zliminator
ID: 31601125
Thanks, I'm in vb.net but I like both answers. Very helpful, thanks again.

Dan
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Displaying an arrayList in a listView using the default adapter is rarely the best solution. To get full control of your display data, and to be able to refresh it after editing, requires the use of a custom adapter.
Although it can be difficult to imagine, someday your child will have a career of his or her own. He or she will likely start a family, buy a home and start having their own children. So, while being a kid is still extremely important, it’s also …
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…

840 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question