The following script shows one way to convert a decimal number to a hexadecimal number. It should correctly convert postive numbers between 0 and 2147483647. The script prints the hexadecimal value of a random decimal number and can be adapted as required. benchmark WebBenchmarkName use "WebAPI.bdh" dclrand rNum : RndUniN(100..6000); dclfunc // converts decimal numbers under 15 to their hex equivalent function fConvertNumToHex(i:number) : number begin if i=0 then fConvertNumToHex:= ord("0"); elseif i=1 then fConvertNumToHex:= ord("1"); elseif i=2 then fConvertNumToHex:= ord("2"); elseif i=3 then fConvertNumToHex:= ord("3"); elseif i=4 then fConvertNumToHex:= ord("4"); elseif i=5 then fConvertNumToHex:= ord("5"); elseif i=6 then fConvertNumToHex:= ord("6"); elseif i=7 then fConvertNumToHex:= ord("7"); elseif i=8 then fConvertNumToHex:= ord("8"); elseif i=9 then fConvertNumToHex:= ord("9"); elseif i=10 then fConvertNumToHex:= ord("A"); elseif i=11 then fConvertNumToHex:= ord("B"); elseif i=12 then fConvertNumToHex:= ord("C"); elseif i=13 then fConvertNumToHex:= ord("D"); elseif i=14 then fConvertNumToHex:= ord("E"); elseif i=15 then fConvertNumToHex:= ord("F"); end; end fConvertNumToHex; // converts decimal number to hex - requires function fConvertNumToHex function fConvert(i:number):string var count: number; sTemp:string; begin count:=0; while (i 0) do count:=count+1; sTemp[count]:=chr(fConvertNumToHex(i mod 16)); i:=i/16; end; fConvert:=(strRev(sTemp)); end fConvert; dcluser user WebUser transactions TWeb : 1; dcltrans transaction TWeb var i:number; begin i:=rNum; print(string(i) + " " + fConvert(i)); end TWeb; Old KB# 19171
↧