Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: sircid en 9 Agosto 2006, 05:37 AM

Título: Problema con la funcion Chr
Publicado por: sircid en 9 Agosto 2006, 05:37 AM
Hasta ahora utilize la funcion Chr para pasar a un valor decimal un valor hexadecimal.

Un ejemplo:
MsgBox Chr("&hC1")

El msgbox me devolvería el valor 193.

El problema que tengo ahora es al hacer esto:

MsgBox Chr("&hDA5D")

Usando la calculadora obtengo el valor 55901 que es el que esperé desde mi programa, pero me salta un error:

Error '5' en tiempo de ejecución :

Llamada a procedimiento o argument no válido.

¿Cómo puedo hacer para hacer lo que deseo?

Gracias!
Título: Re: Problema con la funcion Chr
Publicado por: -POLACO- en 9 Agosto 2006, 07:13 AM
Usa estas dos funciones lo probe y funciona bien:

Option Explicit
Public Function BMeS(ByVal msb As String) As String
Dim salida
Select Case msb
Case "A"
salida = 10
Case "B"
salida = 11
Case "C"
salida = 12
Case "E"
salida = 14
Case "D"
salida = 13
Case "F"
salida = 15
Case 0 To 9
salida = msb
Case Else
salida = 0
End Select

BMeS = salida
End Function

Public Function PasarHexADec(ByVal Vhex As String) As String

'Declara las variables
Dim HE
Dim AA As String
Dim AB As String
Dim AC As String
Dim AD As String
Dim AE As String
Dim AF As String
Dim AG As String
Dim AH As String
Dim BitS As Integer

AA = 0
AB = 0
AC = 0
AD = 0
AE = 0
AF = 0
AG = 0
AH = 0


HE = UCase(Trim(Vhex))
BitS = Len(HE)
AA = Mid(HE, BitS, 1)
BitS = BitS - 1
If BitS = 0 Then GoTo 10
AB = Mid(HE, BitS, 1)
BitS = BitS - 1
If BitS = 0 Then GoTo 10
AC = Mid(HE, BitS, 1)
BitS = BitS - 1
If BitS = 0 Then GoTo 10
AD = Mid(HE, BitS, 1)
BitS = BitS - 1
If BitS = 0 Then GoTo 10
AE = Mid(HE, BitS, 1)
BitS = BitS - 1
If BitS = 0 Then GoTo 10
AF = Mid(HE, BitS, 1)
BitS = BitS - 1
If BitS = 0 Then GoTo 10
AG = Mid(HE, BitS, 1)
BitS = BitS - 1
If BitS = 0 Then GoTo 10
AH = Mid(HE, BitS, 1)

10

AA = BMeS(AA)
AB = BMeS(AB)
AC = BMeS(AC)
AD = BMeS(AD)
AE = BMeS(AE)
AF = BMeS(AF)
AG = BMeS(AG)
AH = BMeS(AH)


PasarHexADec = AA + AB * 16 ^ 1 + AC * 16 ^ 2 + AD * 16 ^ 3 _
+ AE * 16 ^ 4 + AF * 16 ^ 5 + AG * 16 ^ 6 + AH * 16 ^ 6


End Function

Private Sub Command1_Click()
Dim Numero As Variant
Numero = "&HDA5D"
MsgBox PasarHexADec(Numero)
End Sub



Aclaracion:(el code NO es mio)
Espero te sea util  .-.

"Del extasis a la agonia oscila nuestra historia,podemos ser lo mejor y tambien lo peor con la misma facilidad"
Bersuit Vergarabat
Título: Re: Problema con la funcion Chr
Publicado por: sircid en 9 Agosto 2006, 14:50 PM
Funciona perfecto, muchas gracias!