devxlogo

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

Charlie has over a decade of experience in website administration and technology management. As the site admin, he oversees all technical aspects of running a high-traffic online platform, ensuring optimal performance, security, and user experience.

See also  Seven Service Boundary Mistakes That Create Technical Debt

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.