>Function Decode_LoopData (Value As String) As Integer > > 'Decode raw data bytes from "loop" command to numeric value >' NOTE >' Low bit is left char in value >' High bit is right char in value > >If Len(Value) = 1 Then > Decode_LoopData = Val("&H" + Hex$(Asc(Value))) >ElseIf Len(Value) = 2 Then > temp% = Asc(Left$((Value), 1)) > If temp% < 16 Then > Decode_LoopData = Val("&H" + Hex$(Asc(Right$(Value, 1))) + "0" + Hex$(temp%)) > Else > Decode_LoopData = Val("&H" + Hex$(Asc(Right$(Value, 1))) + Hex$(temp%)) > End If > >End If > >Rough first shot:
Function (Decode_LoopData as string) do case case len(value)=1 lnResult=asc(value) case len(value)=2 temp=asc(value) if temp<16 lnResult=temp*16 else lnResult=asc(value)*256+asc(substr(value,2)) endif otherwise lnResult=null endcase return lnResultThe code was unnecessarily complicated - conversion to hex serves no purpose at all.