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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Microsoft
20/12/2004 - 13:22 | Informe spam
Gracias, ahora pruebo.
Diego

"Rodrigo Corral [MVP]" escribió en el mensaje
news:#
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


Respuesta Responder a este mensaje
#3 Isidro Muñoz
21/12/2004 - 20:42 | Informe spam
Hola Juan,

A ver si la apertura de datos la estás haciendo en modo texto en lugar de
binario o al revés.

Saludos.
Isidro,
Respuesta Responder a este mensaje
#4 Paco Garcia
27/12/2004 - 11:34 | Informe spam
¿Se te solucionó el problema?

"Juan" escribió en el mensaje
news:
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


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida