Título: Problema al guardar valores hexadecimales en archivo .bin ocupando 2 bytes Publicado por: Fabricio en 29 Septiembre 2009, 22:20 pm Hola a todos tengo el siguiente problema… tengo que guardar datos en un archivo .bin (ej : pepe.bin) en donde cada dato que voy a guardar tiene un nombre, tipo y ocupa cierta cantidad de bytes dentro del archivo ej :
nombre: tamaño: tipo de datos: cantidad 2 bytes binario LSB-MSB el problema que me surge es que al leer la cantidad de la BD (tipo de dato integer) lo debo pasar a hexa luego swapearlo y guardar esos valores ocupando solo 2 bytes Pd: para abrir el archivo y ver como se guardaron los datos guardados uso el UEStudio (UltraEdit) ej Código: Private Sub Form_Load() El problema :-( que tengo es que este codigo me guarda 44 31 41 en tres bytes (valor hexa de D, el de 1 y el de A el 7 se pisa porque A1 me ocupa 2 bytes ) esto lo veo usando el UEStudio conmutando a modo hexa Lo que yo deseo guardar es D7 (no 44 37) ocupando un solo byte y 1A (no 31 41) ocupando un solo byte o sea que cuando uso el UeStudio en modo hexa vea D7 y 1A ocupando solo 2 byte Bueno se hizo largo por que trate de ser lo mas claro posible Espero que se entienda :huh: Un gran saludo Título: Re: Problema al guardar valores hexadecimales en archivo .bin ocupando 2 bytes Publicado por: Karcrack en 29 Septiembre 2009, 23:04 pm Tal vez asi...
Código: Private Sub Form_Load() Título: Re: Problema al guardar valores hexadecimales en archivo .bin ocupando 2 bytes Publicado por: Fabricio en 30 Septiembre 2009, 14:27 pm Funciono perfecto muchas gracias Karcrack :D
me podes aclarar como funciona el "&H" a = CByte("&H" & Right(cantHexa, 2)) por que yo habia probado cantHexa = &HcantHexa pero no me funciono muchas gracias un saludo :-\ Título: Re: Problema al guardar valores hexadecimales en archivo .bin ocupando 2 bytes Publicado por: Karcrack en 30 Septiembre 2009, 15:22 pm Funciono perfecto muchas gracias Karcrack :D El '&H' indica a la funcion CByte que es un numero hexadecimal...me podes aclarar como funciona el "&H" a = CByte("&H" & Right(cantHexa, 2)) por que yo habia probado cantHexa = &HcantHexa pero no me funciono muchas gracias un saludo :-\ Título: Re: Problema al guardar valores hexadecimales en archivo .bin ocupando 2 bytes Publicado por: Fabricio en 30 Septiembre 2009, 16:15 pm Una mas ... esto de los numeros se me esta complicando ;D ... como paso a hexa este numero 3502289056 :huh:
probe Código: dim a as double yo quiero obtener D0C0B0A0 gracias saludos Título: Re: Problema al guardar valores hexadecimales en archivo .bin ocupando 2 bytes Publicado por: Karcrack en 30 Septiembre 2009, 16:35 pm Con ese numero te pasas del tamaño del Long...
Para ser exacto estas poniendo un Double... para sacar el Hex de eso tienes que ir leyendo la memoria y ir byte por byte metiendo el valor Hexadecimal... Título: Re: Problema al guardar valores hexadecimales en archivo .bin ocupando 2 bytes Publicado por: Fabricio en 30 Septiembre 2009, 17:11 pm Ok gracias por eso el overflow
luego te cuento como me salio gracias saludos Título: Re: Problema al guardar valores hexadecimales en archivo .bin ocupando 2 bytes Publicado por: ledred en 2 Febrero 2012, 19:24 pm Hola y como le puedo poner un text1 para que yo ingrese manualmente el numero hex gracias
cantHexa = Hex(6871) 'y da "1AD7" que es un dato de tipo string Título: Re: Problema al guardar valores hexadecimales en archivo .bin ocupando 2 bytes Publicado por: MCKSys Argentina en 2 Febrero 2012, 20:45 pm Suponiendo que tienes un TextBox (Text1):
Código: Dim cantHexa as long Solo debes verificar que el largo del TextBox no cree un overflow y ademas que tenga caracteres correctos: 0..9, A..F Saludos! |