I have seen many methods for dealing with arrays in VB6 that may contain no elements over the years. From using a counter variable to handling it in an error trap. But is there a correct way of handling arrays that have not been initialised and contain no data?
Yes! If you Not
an array it will return -1 if it contains no elements. Here is an example:
If (Not variableArray) = -1 Then
' Array is empty.
Else
' Array has elements.
End If
And there you have it. No need to use a confusing error trap looking for a subscript out of range exception, no need to declare any extra variables and remembering to set them accordingly, just one line of code.
This works because Not
is performing a bitwise operation on the array's 32 bit memory pointer. If this pointer is Null then all the bits get switched on and you end up with 0xFFFFFFFF, or -1 in VB6. If you Not
it a second time you will end up with the array's memory pointer, or zero if it has not been initialised.
References:
No comments:
Post a Comment