Hola Julio 
Nada es una estupidez si se intenta ayudar
Igualmente les comento que ya lo solucione
Basandome en el ejemplo de fernando, en lugar de "3B" seria asi :

        Dim valorbyte As Byte
        valorbyte = &H3B
        MessageBox.Show(valorbyte)

y funciona 8-D

Gracias a todos por el tiempo dedicado

Saludos
PabloC
  ----- Original Message ----- 
  From: julio.novomisky 
  To: vbnet List Member 
  Sent: Friday, May 02, 2008 5:25 PM
  Subject: [vbnet] String a Byte


  Pablo,

  Es quizas una estupidez lo que te voy a comentar, pero para llegar de 3B a 59 
la conversion debe ser si o si hexadecimal. Decimal no podria ser, porque B es 
mayor a 10, por lo que no podria ser resuelta, matematicamente hablando.
  Ahora (3x16) + 11 = 59
  Lo otro que podes testear es el valor del string, desarmarlo, y calcular su 
valor dependiendo de su posicion y largo de la cadena
  Buen fin de semana


   


    -----Original Message-----
    From: "PabloC" <[EMAIL PROTECTED]>
    To: "vbnet List Member"  <[email protected]>
    Date: Fri, 2 May 2008 14:40:07 -0300
    Subject: [vbnet] String a Byte


    Tal cual lo comentaba Fernando NO funciono :-(
    El tema es asi a ver si me explico mejor 
    Tengo una rutina en VB,NET que calcula un CRC16 muy especial para una 
cadena de valores Hexas
    Esta rutina recibe parametros asi 
    Public Shared Function calculate(ByVal buffer() As Byte, ByVal offset As 
Integer, ByVal len As Integer, ByVal feed As Integer) As Integer
    Dim iCRC As Integer
    Dim i As Integer
    Dim bytT As Byte
    Dim bytC As Byte
    Dim ia As Integer
    iCRC = feed
    For i = offset To len - 1
    bytC = buffer(i)
    bytT = (iCRC And &HFF) Xor bytC
    ia = uiShiftRightBy8(iCRC)
    iCRC = ia Xor aCRC16Table(bytT)
    Next
    calculate = iCRC
    End Function
    Como pueden ver recibe buffer() As Byte 

    buffer por ejemplo puede ser  ("04","03","00","00") y asi funciona 
perfecto, pero tambien puede ser ("04","01","06","00","3B","32") y en este caso 
salta por la excepcion del TRY al convertir "3B" en byte

    SI hago lo que dice fernando de convertir primero a mano en decimal, el 
"3B" es 59 y pasandole 59 a la rutina el CRC no me da como deberia

    Se entendio?
    Alguna idea?
    Gracias 

    Saludos
    PabloC

Responder a