Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Dec 8, 1998



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Ragged Arrays

Who said arrays in VB can't change all dimensions while preserving data? I call this the "variable dimensions array," and I use it when applications need data arrays with more flexible sizes in all dimensions. This variable prevents your apps from having empty elements in arrays (even if the Variant data type takes a lot of memory). For example, take a look at this two-dimensional array. Instead of declaring the variables with the two dimensions from the beginning, simply declare a Variant:
Dim  myVar as Variant
' Then 'redim' the first dimension only (2 
' elements):
redim myVar(0 to 1)
' You can now use the Array() function for 
' each element of the array:
myVar(0) = Array(0, 10, 50)
myVar(1) = Array("test1", "test2", "test3", "test4")

	Use this code to get the data:

myVar(0)(1) = 10
myVar(1)(2) = "test3"
You can use as many parentheses as you want, and you can still use the Redim Preserve statement with each element and all dimensions. Simple! Note that you can also use a subroutine to resize one element of the array if you don't want to use the Array() function:
Public Sub sbDeclare(ByRef pItem As Variant, _
	pLower As Integer, pUpper As Integer)
	ReDim Preserve pItem(pLower To pUpper)
End Sub

Call sbDeclare(myVar(0), 0, 1)
Nicolas Di
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date