fread y fwrite con clases

Iniciado por newone, 23 Junio 2011, 04:51 AM

0 Miembros y 1 Visitante están viendo este tema.

newone

hola amios quiero grabar en archivos binarios con fread y fwrite, los registros k qiero grabar son de tipo clase, uba clase cualquiera imaginese. no es importancia aora. lo qe necesito es como saber usar fread y fwrite pero pasandole parametro de un objeto de clase y como obtener el tamanio sifeof del objeo
si tienen un jemplillo de como usar fready fwrite con objetos tipo clase para que yo sepa como se hace para grabar y ler  ;-) porfa

Kasswed

Tendrás que implementar el método fread y fwrite para tu clase...
"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.

Queta

Sí puede a ver si entendido bien :rolleyes:.

¿Quieres declarar los parámetros de las funciones en una clase?

Código (cpp) [Seleccionar]
#include <cstdio>

class fread
{
public:
char *buffer;
FILE *pFile;
long lSize;
} _fread;

int main()
{
_fread.pFile = fopen("C:\\test.txt", "w+");

char string[] = "Esto es un pequeño ejemplo.";

fwrite(string, 1, sizeof(string), _fread.pFile);

       fseek(_fread.pFile, 0, SEEK_END);

_fread.lSize = ftell(_fread.pFile);

       rewind(_fread.pFile);

_fread.buffer = new char[sizeof(char) * _fread.lSize];

fread(_fread.buffer, 1, _fread.lSize, _fread.pFile);

printf("%s", _fread.buffer);

delete[] _fread.buffer;

getchar();

return 0;
}


Un pequeño ejemplo escribiendo contenido en un archivo .txt y posteriormente, leyéndolo por pantalla. El código no es lo mejor que hay, pero te servirá si quieres hacer algo de este tipo...
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.

Khronos14

Pues yo lo que entedí es que quiere grabar el contenido de la clase en un fichero binario, tal y como se haría en .NET para serializar una clase.

Saludos.

newone


class producto
{
private:

int
int
char

public:
get
get
set
set
};

int main()
{
      //abri achibo
     PFILE pFILE = fopen();

      //objeto produto
      class Producto pro;

      // completar producto con datos
      // ...

     // grabar a disko o leer de disco

    fread("?" , sizeof(pro), 1,  pFILE);


    //la duda es el freado fwrite xqe me dicieron de usar el this para comvocar al
    //  objeto de la clase

   fread(this, sizeof(pro) *this, 1, pFILE);

   
}


porfa diganme como es  ;-)