************************************************************* * HECK.PRG * A little wrapper around George Tasker class * for automatic translation back and forth ************************************************************* **** Author of this piece: Nick Neklioudov LPARAMETERS tcText * You can explicitly pass your text as a parameter, or the program automatically picks * the clipboard content IF empty(tcText) tcText = ALLTRIM(_CLIPTEXT) ENDIF IF empty(tcText) RETURN ELSE && Strip out possible CRLF so the class code doesn't bomb tcText = STRTRAN(STRTRAN(tcText,CHR(13)," "),CHR(10),"") ENDIF LOCAL loHeck loHeck = createobject("hexwords") *Place the result to the clipboard IF UPPER(LEFT(tcText, 2)) = "0X" _CLIPTEXT = loHeck.HexToWord(tcText) ELSE _CLIPTEXT = loHeck.WordToHex(tcText) ENDIF * show the result in WAIT WINDOW WAIT WINDOW _cliptext NOWAIT RETURN ***** End of Nick's code ***** Author: George Tasker DEFINE CLASS HexWords AS CUSTOM FUNCTION WordToHex LPARAMETER tcWord LOCAL lni, lnlast, lcresult, lcchar, lnchar lcresult = "" lnlast = LEN(tcWord) FOR lni = 1 TO lnlast lcchar = SUBSTR(tcWord, lni, 1) lcresult = lcresult + RIGHT(TRANSFORM(ASC(lcchar), "@0"), 2) NEXT lcresult = "0x" + lcresult RETURN lcresult ENDFUNC FUNCTION HexToWord LPARAMETER tcHex LOCAL lni, lnlast, lcresult, lcHex, lnchar lcresult = "" lcHex = SUBSTR(tcHex, 3) lnlast = LEN(lcHex) FOR lni = 1 TO lnlast STEP 2 lnchar = EVALUATE('0x' + SUBSTR(lcHex, lni, 2)) lcresult = lcresult + CHR(lnchar) NEXT RETURN lcresult ENDFUNC ENDDEFINE
DEFINE CLASS HexWords AS CUSTOM > > FUNCTION WordToHex > > LPARAMETER tcWord > > LOCAL lni, lnlast, lcresult, lcchar, lnchar > lcresult = "" > lnlast = LEN(tcWord) > FOR lni = 1 TO lnlast > lcchar = SUBSTR(tcWord, lni, 1) > lcresult = lcresult + RIGHT(TRANSFORM(ASC(lcchar), "@0"), 2) > NEXT > lcresult = "0x" + lcresult > RETURN lcresult > ENDFUNC > > FUNCTION HexToWord > > LPARAMETER tcHex > > LOCAL lni, lnlast, lcresult, lcHex, lnchar > lcresult = "" > lcHex = SUBSTR(tcHex, 3) > lnlast = LEN(lcHex) > FOR lni = 1 TO lnlast STEP 2 > lnchar = EVALUATE('0x' + SUBSTR(lcHex, lni, 2)) > lcresult = lcresult + CHR(lnchar) > NEXT > RETURN lcresult > ENDFUNC >ENDDEFINEI've gotta stop hanging around with Koziol.< bg >