>function StringReverse(s) > > declare string _strrev in msvcrt.dll as StringReverse string > > return StringReverse(m.s) >endfunc >That sounds good! If I have 16 bytes where one of the bytes is 00, it seems to stop at that byte. I need it to go for the length of the provided string.
DECLARE INTEGER UuidCreateSequential ; IN Rpcrt4.Dll ; STRING @ lcGUID declare string _strrev in msvcrt.dll as StringReverse string DECLARE INTEGER StringFromGUID2 ; IN Ole32.DLL ; STRING rguid, STRING @lpsz, INTEGER cchMax LOCAL m.lcGUID m.lcGUID = REPLICATE(CHR(0),16) UuidCreateSequential(@m.lcGUID) ?GuidFormat3(m.lcGuid) m.lcGuidRev = StringReverse(m.lcGUID) ?GuidFormat3(m.lcGuidRev) RETURN PROCEDURE GuidFormat3 LPARAMETERS m.lcBuffer LOCAL m.lcPK,m.i,m.lnHex,m.lnUpper,m.lnLower m.lcPK=SPACE(0) FOR m.i=1 TO 16 m.lnHex = ASC(SUBSTR(m.lcBuffer,m.i,1)) m.lnUpper = INT(m.lnHex/16) m.lnLower = m.lnHex - (m.lnUpper*16) m.lcPK = m.lcPK + SUBSTR('0123456789ABCDEF',m.lnUpper + 1,1) + ; SUBSTR('0123456789ABCDEF',m.lnLower + 1,1) ENDFOR RETURN m.lcPK