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