VB Binary Error Messages

I am working with an API for a 3rd party program.

This program has several error codes as follows

1 - Error Description 1
2 - Error Description 2
4 - Error Description 4
8 - Error Description 8
16 - Error Description 16
32 - Error Description 32
64 - Error Description 64

When this API returns an error though it only returns 1 error code.  It adds the error numbers together so if an eror code of 6 is returned you know that this is made up of error 4 and error 2 as this is the only combination that gives 6.  Similarly if an erro code of 9 is retured you know this must have been an error code of 8 and 1.

What I need is a VB function, code etc which will parse any given binary number to give me a list or array etc of the individual error numbers which make up a returned error.

I could write this myself but I'm in a hurry so rather than general ideas on how I might write this I just want quick and easy copy and paste code.

Thanks

Dave
LVL 19
daveamourAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
TimCotteeConnect With a Mentor Head of Software ServicesCommented:

Private Function GetError(ByVal intError As Integer) As String
    Dim intValue As Integer
    Dim intPower As Integer
    intValue = intError
    For intPower = 6 To 0 Step -1
        If intValue >= 2 ^ intPower Then
            GetError = GetError & "Description " & CStr(2 ^ (intPower)) & vbLf
            intValue = intValue - (2 ^ intPower)
        End If
    Next
End Function

Call :

Msgbox GetError(6)


       
0
 
daveamourAuthor Commented:
I've actually already solved this.  There are more than 7 error though.

I converted the error message to a binary string and then wrote this code:

Private Function showXMLErrors(strErrorNumber As String) As String
    Dim i As Integer
    Dim strXML As String
   
    strXML = "<?xml version=""1.0"" encoding=""UTF-8"" ?>"
    strXML = strXML & "<Errors>"
   
    For i = 1 To Len(strErrorNumber)
      strXML = strXML & "<Error Code=" & 2 ^ (Len(strErrorNumber) - i) & ">" & Mid(strErrorNumber, i, 1) & "</Error>"
    Next
   
    strXML = strXML & "</Errors>"
   
    showXMLErrors = strXML
End Function

Thanks anyway though and you can have the points for helping.

Cheers

Dave
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.