[AccessD] OT: Programming Logic

Shamil Salakhetdinov shamil at smsconsulting.spb.ru
Fri Feb 14 15:55:00 CST 2003


> Any ideas would be appreciated.
Joe,

Here is a sample code just to show you an idea:

Dim lngBinNum As Long
Dim lngBinMsk As Long
Dim strRet As String

lngBinNum = 84
lngBinMsk = 1

Do While (lngBinMsk <> 0)
    If (lngBinNum And lngBinMsk) <> 0 Then
        If Len(strRet) > 0 Then strRet = strRet & ","
        strRet = strRet & CStr(lngBinMsk)
    End If

    Select Case lngBinMsk
    Case &H40000000: lngBinMsk = &H80000000
    Case &H80000000: lngBinMsk = 0
    Case Else
       lngBinMsk = lngBinMsk * 2
    End Select
Loop
MsgBox strRet, vbOKOnly + vbInformation

HTH,
Shamil

----- Original Message -----
From: "Joe Rojas" <JRojas at tnco-inc.com>
To: <accessd at databaseadvisors.com>
Sent: Friday, February 14, 2003 11:26 PM
Subject: [AccessD] OT: Programming Logic


> Hi All,
>
> I have seen in a couple of programs that use flags to set options
> that work by giving a "binary" value, if you will, to each setting. For
> example, the first setting has the value 1, the second 2, then 4,
> 8,16,32,64,etc. Then it will add up the values of the settings that have
> been turned on. So if the 3rd, 5th, and 7th settings were turned on the
> value would be 84 (4+16+64). The totaled value generated would be unique,
> i.e. no two combinations of settings would produce the same totaled value.
>
> Here is the part that I get stumped on...how would one program a
> function that would take a totaled value and "break it up" into the
> individual values that made it up? For example, if given the value 84, it
> would "break it up" as 4, 16, and 64.
>
> Any ideas would be appreciated.
>
> Thanks,
> Joe Rojas
>
>
>
>
>
> This electronic transmission is strictly confidential to TNCO, Inc. and
> intended solely for the addressee. It may contain information which is
> covered by legal, professional, or other privileges. If you are not the
> intended addressee, or someone authorized by the intended addressee to
> receive transmissions on behalf of the addressee, you must not retain,
> disclose in any form, copy, or take any action in reliance on this
> transmission. If you have received this transmission in error, please
notify
> the sender as soon as possible and destroy this message. While TNCO, Inc.
> uses virus protection, the recipient should check this email and any
> attachments for the presence of viruses. TNCO, Inc. accepts no liability
for
> any damage caused by any virus transmitted by this email.
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com




More information about the AccessD mailing list