>**************************************************** > >This part would be in VFP9FUNCTIONS.H >**************************************************** >#IF VERSION(5) < 900 >#DEFINE BINTOC BINTOC_VFP9 >#ENDIF >**************************************************** > >CLEAR >?BINTOC(65,"4rs") >?BINTOC(65,4) > > >#UNDEF BINTOC >**************************************************** > >This part would be in VFP9FUNCTIONS.PRG >**************************************************** >FUNCTION BINTOC_VFP9(nValue, eFlags) > >IF VARTYPE(eFlags) = "N" >RETURN BINTOC(nValue, eFlags) >ENDIF > >DO CASE >CASE UPPER(eFlags)="4RS" >RETURN CHR(BITAND(nVal,0xFF))+; >CHR(BITLSHIFT(BITAND(nVal,0x0000FF00),8))+; >CHR(BITLSHIFT(BITAND(nVal,0x00FF0000),16))+; >CHR(BITLSHIFT(BITAND(nVal,0xFF000000),24)) >*!ToDo: more code required... >OTHERWISE >ENDCASE >ENDFUNC >**************************************************** >>
>>*==================================================================== >>* Converts a 32-bit integer variable (LONG) into a binary string. >>*==================================================================== >>Procedure APILongToChar >>LParameter tnLong >> >> Local lcString >> lcString = Space(4) >> Declare RtlMoveMemory in Win32API as __LongToChar ; >> String@, Long@, Integer >> __LongToChar( @lcString, @tnLong, 4 ) >> >>Return m.lcString >> >>*==================================================================== >>* Converts a binary string into a 32-bit unsigned integer. >>*==================================================================== >>Procedure APICharToLong >>LParameter tcString >> >> Local lnLong >> lnLong = 0 >> Declare RtlMoveMemory in Win32API as __CharToLong ; >> Long@, String@, Integer >> __CharToLong( @lnLong, @tcString, 4 ) >> If m.lnLong < 0 >> lnLong = m.lnLong + 2^32 >> Endif >> >>Return m.lnLong >>