Atlanta Custom Software Development 

 
   Search        Code/Page
 

User Login
Email

Password

 

Forgot the Password?
Services
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
Programming
  Database
Automation
OS/Networking
Graphics
Links
Tools
» Regular Expr Tester
» Free Tools

Quickly clear a portion of an array
[ All Languages » VB »  Arrays]

Total Hit ( 2785)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 


The fastest way to clear an array is to ReDim (if the array is dynamic) or Erase it (if the array is Static). However, if you want to clear a portion of an array, it seems that you must code a For-Next loop.

If you are dealing with numeric arrays, there is a faster alternative, based on the ZeroMemory API function which, as it names implies, can fill a memory area with zeroes. See how you can use this function to clear a sub array of Longs:

Click here to copy the following block
Private Declare Sub ZeroMemory Lib "kernel32" Alias "RtlZeroMemory" (dest As _
  Any, ByVal Bytes As Long)

' Declare an array and fill it with data
Dim a(1000) As Long
For i = 1 To UBound(a)
  a(i) = i
Next
' Clear 100 elements, starting at a(200)  
ZeroMemory a(200), 100 * Len(a(1))

Note that the number of bytes to be cleared is given by the product of the number of elements to be cleared multiplied by the length of each element. Using the Len() function ensures that the above code works even if you change the type of the array.
You can use this approach with any numeric array, as well as Variant arrays that contain only numbers (including the Decimal subtype) and arrays of User Defined Types that contains only numbers and fixed-length strings. If you use the ZeroMemory function with variable-length strings or objects what you get is a GPF.





Submitted By : Nayan Patel  (Member Since : 5/26/2004 12:23:06 PM)

Job Description : He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting.
View all (893) submissions by this author  (Birth Date : 7/14/1981 )


Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.