Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: newone en 23 Junio 2011, 04:51 AM

Título: fread y fwrite con clases
Publicado por: newone en 23 Junio 2011, 04:51 AM
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
Título: Re: fread y fwrite con clases
Publicado por: Kasswed en 23 Junio 2011, 11:14 AM
Tendrás que implementar el método fread y fwrite para tu clase...
Título: Re: fread y fwrite con clases
Publicado por: Queta en 23 Junio 2011, 12:01 PM
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...
Título: Re: fread y fwrite con clases
Publicado por: Khronos14 en 23 Junio 2011, 12:43 PM
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.
Título: Re: fread y fwrite con clases
Publicado por: newone en 23 Junio 2011, 23:40 PM

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  ;-)