devxlogo

CBitArray – a class for dealing with large arrays of Boolean

CBitArray – a class for dealing with large arrays of Boolean

' ------------------------------------------------------------------------'  The CBITARRAY class''  simiulates an array of Boolean values'  saves memory by packing one element in one bit'' IMPORTANT: you make make ITEM the default member for this class'            do this from inside the Tools | Procedure Attributes dialog box'' Usage:'    Dim bitArr As New CBitArray'    bitArr.Init(10000)         ' 10,000 boolean elements'    ' assign a value'    bitArr(10) = True'    ' read it back'    Print bitArr(10)'' ------------------------------------------------------------------------Option ExplicitDim mask(0 To 7) As IntegerDim values() As BytePublic Sub Init(ByVal numEls As Long)    ' redimension the internal array    ' MUST BE THE FIRST METHOD CALLED FOR THIS CLASS    ReDim values(numEls  8) As ByteEnd SubPrivate Sub Class_Initialize()    ' initialize the mask() array    Dim i As Integer    mask(0) = 1    For i = 1 To 7        mask(i) = mask(i - 1) * 2    NextEnd Sub' for smoother syntax, you should make ITEM the default member for this classProperty Get Item(ByVal index As Long) As Boolean    ' retrieve an array item    Item = values(index  8) And mask(index And 7)End PropertyProperty Let Item(ByVal index As Long, ByVal new_Item As Boolean)    Dim ndx As Long, m As Byte    ' cache the mask into a local variable    m = mask(index And 7)    ndx = index  8    ' set or reset only the relevant bit    values(ndx) = (values(ndx) And Not m) Or (new_Item And m)End Property

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist