Lectura con BYTES

19/12/2004 - 18:34 por Juan | Informe spam
Hola grupo, tengo un problema que me esta volviendo turuleco:
hice un programa en VB que crea un archivo de imagen de un disco duro dañado
y para recuperar algo hice que metiera en un buffer de Byte una cierta
cantidad de datos. Cuando hago la busqueda binaria saltan afuera los arhivos
recuperados sin problemas; el problema es que VB es lento para ciertas cosas
y extremadamente limitado con sus variables, entonces quiero hacer lo mismo
con VC pero la extraccion de datos y/o la lectura se hace mal, no entiendo
porque en vez de extraer byte por byte me sale con por ejemplo un caracter
0x0A junto con un 0x0D (un retorno de carro) que con VB no lo hace, y otros
caracteres (siempre en HEXA) vienen directamente cambiados: probe con hacer
lectura en ANSI o UNICODE y es lo mismo, con "char" y "unsigned char" y es
lo mismo, el mismo archivo extraido con VB y con VC de una cierta cantidad
de sectores del Disco, viene diferente (el de VC es mas grande) y utilizo el
mismo algoritmo. Probe con ReadFile, con _read, y no me sale. Quise hacer
una rutina en assembler y NT no me deja acceder al disco.
Y no se como salir de este pozo, cual es la diferencia entre el tipo de
datos Byte de VB y el char o BYTE de VC?, sera la rutina que utilizo para
leer ? , sera el buffer?
Si alguno de ustedes tiene alguna idea para aportar, les estare muy
agradecido.

Diego
 

Leer las respuestas

#1 Rodrigo Corral [MVP]
20/12/2004 - 10:33 | Informe spam
Yo intuyo que el problema esta en la rutina que utilizar para leer. Para lo
que estas haciendo lo suyo seria usar las funciones de el API, OpenFile y
ReadFile, si el rendimiento te preocupa utiliza lectura asincrona, para lo
que te servira ReadFileEx.

¿Puedes poner codigo donde haces la apertura y la lectura del archivo?


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org

Preguntas similares