Lectura en bruto de un fichero

06/07/2004 - 12:15 por Sergio | Informe spam
Hola,
quiero leer datos de un fichero (en este caso es una imagen) "a lo
bruto", de tal forma que no me importa (por ahora) que quiere
representar, sino que quiero cargar el fichero, para luego guardarlo en
otro, con varios datos más, para después en otro programa volver a
separar los datos, y convertir los datos de la imagen en un fichero válido.

Preguntas similare

Leer las respuestas

#1 Sergio
06/07/2004 - 12:43 | Informe spam
Sergio wrote:

Hola,
quiero leer datos de un fichero (en este caso es una imagen) "a lo
bruto", de tal forma que no me importa (por ahora) que quiere
representar, sino que quiero cargar el fichero, para luego guardarlo en
otro, con varios datos más, para después en otro programa volver a
separar los datos, y convertir los datos de la imagen en un fichero válido.




Bueno, me respondo a mi mismo:


CFile fi(ruta,CFile::modeRead);
BYTE *foto;
ULONGLONG tam = fi.GetLength();
foto = new BYTE[tam];
fi.Read(foto,tam);
fi.Close();

delete [] foto;

Si que era facil, si.
Respuesta Responder a este mensaje
#2 Rodrigo Corral [MVP]
06/07/2004 - 12:51 | Informe spam
Es tan simple como usar el api OpenFile, dimensionar un buffer del tamaño
del fichero en bytes y luego leer con ReadFile. Si estas usando MFC con
CFile::Open y CFile::Read puedes hacer lo mismo. Y si quieres que el
programa sea 'portable' utiliza las funciones del runtime de C fopen y
fread.


Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net
Respuesta Responder a este mensaje
#3 Sergio
06/07/2004 - 16:20 | Informe spam
Rodrigo Corral [MVP] wrote:
Es tan simple como usar el api OpenFile, dimensionar un buffer del tamaño
del fichero en bytes y luego leer con ReadFile. Si estas usando MFC con
CFile::Open y CFile::Read puedes hacer lo mismo. Y si quieres que el
programa sea 'portable' utiliza las funciones del runtime de C fopen y
fread.





Pues no se porque pero con las funciones de C no obtenia el resultado
esperado. La función fseek(pf,0,SEEK_END); me devolvia 0 bytes leidos,
cuando yo se que era mayor que eso, siendo pf un puntero válido, o al
menos no apuntaba a NULL.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida