`
Par2: RGB to html/xml/css/xslt stream 2002-07-09 -- Stephen Bottomley Decimal to Hex courtesy of Andrew Ireland Function returns a value usable to parse out to a html/xml/css/xslt stream MAP RgbToHex(LONG lRed = 0,LONG lGreen = 0,LONG lBlue = 0),STRING DecToHex(LONG lDecVal,LONG Flag = 0),STRING END RgbToHex(LONG lRed = 0,LONG lGreen = 0,LONG lBlue = 0) RetVal CSTRING(9) SaveRed STRING(8) SaveGreen STRING(8) SaveBlue STRING(8) CODE SaveRed = Dec2Hex(lRed) SaveGreen = Dec2Hex(lGreen) SaveBlue = Dec2Hex(lBlue) Retval = SaveRed[7 : 8] & SaveGreen[7 : 8] & SaveBlue[7 : 8] return(RetVal) DecToHex(LONG lDecVal,LONG Flag = 0) Counter BYTE HexDig STRING('0123456789ABCDEF') DecVal LONG HexMap GROUP,PRE(),OVER(DecVal) b4 BYTE b3 BYTE b2 BYTE b1 BYTE END HexVal STRING(8),AUTO CODE DecVal = lDecVal HexVal[1] = HexDig[BSHIFT(b1, -4)+1] HexVal[2] = HexDig[BAND(b1, 0Fh)+1] HexVal[3] = HexDig[BSHIFT(b2, -4)+1] HexVal[4] = HexDig[BAND(b2, 0Fh)+1] HexVal[5] = HexDig[BSHIFT(b3, -4)+1] HexVal[6] = HexDig[BAND(b3, 0Fh)+1] HexVal[7] = HexDig[BSHIFT(b4, -4)+1] HexVal[8] = HexDig[BAND(b4, 0Fh)+1] if band(Flag,Dec2Hex:RemoveZeros) loop Counter = 1 to len(clip(HexVal)) - 1 if HexVal[Counter] <> '0' break . . HexVal = HexVal[Counter : len(HexVal)] . if band(Flag,Dec2Hex:Lower) return(lower(clip(HexVal))) else return(clip(HexVal)) . here is DAB's version of that function: ToHex FUNCTION(LONG L) PS STRING('0123456789ABCDEF'),STATIC CODE RETURN CHOOSE(L < 16,PS[L+1],ToHex(L/16) & ToHex(L%16)) Printed November 21, 2024, 7:27 am This article has been viewed/printed 35217 times. |