I use this to remove an item from a Long type array and it works fine...
I now need to do the same for Boolean type arrays, The code below seems to work OK, no crashes, etc, but I'm unsure its correct, I'm using *2 instead of *4 , Booleans are 2 bytes? so I use 2 here?Code:Private Sub pvArrayRemoveLong(ByRef alArray() As Long, ByVal lPos As Long) Dim lUBound As Long lUBound = UBound(alArray) If Not (lPos = lUBound) Then RtlMoveMemory VarPtr(alArray(lPos)), VarPtr(alArray(lPos + 1)), (lUBound - lPos) * 4 End If ReDim Preserve alArray(lUBound - 1) End Sub![]()
Code:Private Sub pvArrayRemoveBoolean(ByRef alArray() As Boolean, ByVal lPos As Long) Dim lUBound As Long lUBound = UBound(alArray) If Not (lPos = lUBound) Then RtlMoveMemory VarPtr(alArray(lPos)), VarPtr(alArray(lPos + 1)), (lUBound - lPos) * 2 End If ReDim Preserve alArray(lUBound - 1) End Sub




Reply With Quote