To read the article online, visit http://www.4GuysFromRolla.com/webtech/032800-1.2.shtml

Dynamic Arrays Made Easy, Part 2


  • Read Part 1

  • In Part 1 we discussed why a dynamic array class would be nice and looked at the code to create such a class. In this part, we'll focus on how to use the DynamicArray class created in Part 1!

    To use the DynamicArray class, simply create an instance of the class like so:

    Dim objDynArray
    Set objDynArray = New DynamicArray
    

    To add elements to the class instance, simply use the Data property like so:

    objDynArray.Data(4) = "Hello!"
    

    To loop through the array you can use code like:

    Dim i
    For i = LBound(objDynArray.DataArray) to UBound(objDynArray.DataArray)
    'Or, the above line could be replaced by:
    'For i = objDynArray.StartIndex() to objDynArray.StopIndex()
      
      Response.Write i & ".) " & objDynArray.Data(i) & "
    " Next

    Finally, to delete an item, use the Delete method like so:

    Dim objDynArray
    Set objDynArray = New DynamicArray
    
    objDynArray(0) = "Hello"
    objDynArray(2) = "world!"
    objDynArray(1) = "there"
    
    'The array now has the values ("Hello", "there", "world!")
    'Delete the "there" element (index = 1) so we have Hello, world!
    objDynArray.Delete 1
    
    'Now, objDynArray has the values ("Hello", "world!")
    

    With the DynamicArray class you no longer have to worry about constantly Rediming an array or making sure that you have legal array bounds. This class allows you to just slap a value in the array position you want. If the array isn't big enough, it grows. If you want to get rid of an array element, the array compacts itself for you.

    A Note on Performance
    Notice that each time the developer attempts to insert an array element whose position is too big, the array issues a Redim statement. This will lead to a ton of Redim statements if the developer does something like:

    Dim i
    For i = 0 to SomeBigNumber
      objDynArray.Data(i) = SomeValue
    Next
    

    Rather than just adding one element position when Rediming the array in the Data Let Property, why not add a number of elements? This way fewer Redim statements are issued, resulting in fewer memory allocations. Of course if you allocate too many array elements at a time, it will lead to wasted space.

    I hope you found this article interesting and informative, and hopefully you will find the class applicable to your current projects! Feel free to use the DynamicArray class in any of your ASP pages!

    Happy Programming!

  • Read Part 1

  • Download the source code for DynamicArray in text format


  • Article Information
    Article Title: Dynamic Arrays Made Easy, Part 2
    Article Author: Scott Mitchell
    Published Date: Tuesday, March 28, 2000
    Article URL: http://www.4GuysFromRolla.com/webtech/032800-1.2.shtml


    Copyright 2017 QuinStreet Inc. All Rights Reserved.
    Legal Notices, Licensing, Permissions, Privacy Policy.
    Advertise | Newsletters | E-mail Offers