dcsimg
Login | Register   
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


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

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


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.

 

 

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