Power Builder - Conversion datos

 
Vista:

Conversion datos

Publicado por Carlos Gomez (5 intervenciones) el 03/03/2003 13:47:25
Hola. Tengo un dato que me devuelve una funcion en formato String pero se que corresponde a un numero en hexadecimal, por ejemplo:
18BD. como puedo convertir hexadecimal a un numerico ?
Gracias .
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Conversion datos

Publicado por Ricardo (1957 intervenciones) el 03/03/2003 16:07:38
Crea la siguiente función of_hex2long(as_hex) que retorna un long]

string ls_hex
integer i,length
long result = 0

length = len(as_hex)
ls_hex = Upper(as_hex)
FOR i = 1 to length
result += (Pos ('123456789ABCDEF', mid(ls_hex, i, 1)) * ( 16 ^ ( length - i ) ))
NEXT
RETURN result

Espero te sea de utilidad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Conversion datos

Publicado por Oscar (1178 intervenciones) el 03/03/2003 16:29:19
Si quieres otra forma de hacer lo mismo, acá va la funcion of_dec, donde le pasas un string y te devuelve unsigned long:
------------------------------
//ulong of_dec (string as_data)
char lch_char
Unsignedlong lul_decimal=0
UnsignedLong lul_value

//Convierte un Hexadecimal en decimal
as_data = lower (as_data)
Do
lch_char = left (as_data, 1)
//Obtiene el valor decimal para una unidad hexadecimal
Choose Case lch_char
Case '0' to '9'
lul_value = long (lch_char)
Case 'a' to 'f'
//get the value for 'a' - 'f'
lul_value = asc (lch_char) - 87
End Choose

//Crea el equivalente decimal
lul_decimal = lul_decimal * 16 + lul_value
as_data = mid (as_data, 2)
Loop Until as_data = ''

Return lul_decimal
-------------------
La función de Ricardo funciona y ésta también. Eres afortunado!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Conversion datos

Publicado por Carlos Gomez (5 intervenciones) el 04/03/2003 09:12:35
Hola. Si que soy afortunado.
Funcionan perfectamente ambas funciones.
M uchas gracias por vuestra ayuda y un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar