Page 1 of 1

L2Hex()

Posted: Sat Oct 06, 2007 3:27 pm
by toya
Antonio,

Testando L2Hex() contida em ..\source\function\or.c, utilizando o exemplo abaixo estou obtendo um valor diferente.

Code: Select all

#include "fivewin.ch"

function Main()

local nHd:=359532552, xHd:=''

//nHd:=nSerialHD()
xHd:=L2Hex( nHd  )

msginfo( xHd )

return nil

Valor apresentado: 156E080 (hexadecimal)
O valor correto de xHd é: 156E0808 (hexadecimal)

Posted: Mon Oct 08, 2007 12:54 pm
by Sebastián Almirón
Debe ser un error de OR.C, si no lo solucionas de otro modo, prueba a crear tu propia funcion L2hex(), así:

function l2hex(nvar)
return i2Hex( nhiword(nvar) )+ i2hex(nloword(nvar))

Saludos

Posted: Mon Oct 08, 2007 2:36 pm
by Sebastián Almirón
Bueno, o así para que no devuelva ceros delante:

function l2hex(nvar)
local cRet := i2Hex( nhiword(nvar) )+ i2hex(nloword(nvar))
do while substr(cRet,1,1) = '0'
cRet := substr(cRet,2)
enddo
return cRet

Posted: Mon Oct 08, 2007 4:28 pm
by toya
ok Sebastian...
Já elaborei a minha função, apenas achei estranho a OR.C estar devolvendo um valor incorreto....