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"  <vbnet@mug.org.ar>
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