Foro de elhacker.net

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
  1. #include <cstdio>
  2.  
  3. class fread
  4. {
  5. public:
  6. char *buffer;
  7. FILE *pFile;
  8. long lSize;
  9. } _fread;
  10.  
  11. int main()
  12. {
  13. _fread.pFile = fopen("C:\\test.txt", "w+");
  14.  
  15. char string[] = "Esto es un pequeño ejemplo.";
  16.  
  17. fwrite(string, 1, sizeof(string), _fread.pFile);
  18.  
  19.        fseek(_fread.pFile, 0, SEEK_END);
  20.  
  21. _fread.lSize = ftell(_fread.pFile);
  22.  
  23.        rewind(_fread.pFile);
  24.  
  25. _fread.buffer = new char[sizeof(char) * _fread.lSize];
  26.  
  27. fread(_fread.buffer, 1, _fread.lSize, _fread.pFile);
  28.  
  29. printf("%s", _fread.buffer);
  30.  
  31. delete[] _fread.buffer;
  32.  
  33. getchar();
  34.  
  35. return 0;
  36. }

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