Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-12-2016
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
Ok en cuanto pueda lo pruebo pero son los típicos fallos tontos que te vuelves loco y no ves jajaja.
Responder Con Cita
  #2  
Antiguo 06-12-2016
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
Ya de paso hago otra consulta sobre lo que voy a añadir al código. La idea es usar fstream para leer y escribir en archivos de forma secuencial usando la estructura DATOS y eso lo hago sin problema en C pero nunca lo hice en C++ con ofstream y ifstream. Se como abrirlo de forma binaria usando ios::binary pero para leer y escribir, que yo sepa, los métodos read y write esperan char* y no se si es lo que tengo que usar ni como hacerlo. ¿Podéis explicarme esa parte solo?
Responder Con Cita
  #3  
Antiguo 06-12-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Un ejemplo (muy básico) que escribe y lee la estructura en un archivo:
Código PHP:
#include <iostream>
#include <string.h>
#include <fstream>

using namespace std;

const 
int SIZEMAXNAME   20;
const 
int SIZEMAXSPELLS 30;
const 
charFILENAME    "struct.dat";

struct Datos {
  
int id;
  
char nombre[SIZEMAXNAME];
  
char apellidos[SIZEMAXSPELLS];
  
int edad;
};

void saveStructDatos dt );
void readStructDatosdt );

int main()
{
  
// unos datos en dt
  
Datos dt = { 1"Pedro""Diloretto"28 };

  
// guardar en archivo
  
saveStructdt );

  
// limpiar struct
  
memset(&dt0sizeofdt ) );

  
// leer de archivo
  
readStructdt );

  
// mostrar
  
cout << dt.id << " " << dt.nombre << " " << dt.apellidos << " " << dt.edad;

  
cin.get();
  return 
0;
}

void saveStruct (Datos dt )
{
  
ofstream f_outFILENAMEios::binary );
  
f_out.writereinterpret_cast<char*>( &dt ), sizeofdt ) );
  
f_out.close();
}

void readStruct (Datosdt )
{
  
ifstream f_inFILENAMEios::binary );
  
f_in.readreinterpret_cast<char*>( &dt ), sizeofdt ) );
  
f_in.close();

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 06-12-2016
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
¿Y que diferencia hay entre estos dos prototipos?
Código PHP:
void readStruct (Datosdt );
void readStruct (Datosdt ); 
¿Con ambos podría conseguir lo mismo?
Si es así ¿por que usar uno en lugar de otro?
Responder Con Cita
  #5  
Antiguo 06-12-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Si, en C++ se puede conseguir lo mismo con ambos y, salvo algunos casos, se puede prescindir de las referencias. En C no existe el paso de parámetros por referencia (si bién se simula con punteros).

La referencia es como un alias o etiqueta de una variable por lo que deben inicializarse al declararlas,
Código PHP:
  int nro 115;
  
int &ref_nro nro;

  
int &ref;  // no tiene sentido 
mientras que el puntero es una variable que almacena una dirección de memoria.

¿ Por qué usar uno u otro en los parámetros ? creo que la ventaja mas notoria es mayor simpleza y legibilidad.
Puntero:
Código PHP:
void inc(inti, const int n)
{
  *
+= n;
}

int main()
{
  
int x 5;

  
inc( &x);
  
cout << // 10
... 
Referencia:
Código PHP:
void inc(inti, const int n)
{
  
+= n;
}

int main()
{
  
int x 5;

  
inc(x5);
  
cout << x// 10
... 
Buscando por los términos sin dudas hallaras mas detalles, como por ejemplo en este enlace: Parámetros por valor y por referencia

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 06-12-2016 a las 19:52:23.
Responder Con Cita
  #6  
Antiguo 06-12-2016
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
Muchas gracias por las aclaraciones.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas al instalar Indy en Builder 6 Angel.Matilla C++ Builder 1 26-11-2015 10:50:09
Problemas con los hilos en Builder aguml C++ Builder 21 31-03-2014 12:34:35
Ayuda!!!Problemas en C++ Builder. Por Favor lisette C++ Builder 2 29-02-2012 06:04:35
problemas al compilar con MyMAC en C++Builder 6 orlymach Conexión con bases de datos 0 03-07-2010 13:08:53
Problemas PageControl en Builder franfl C++ Builder 5 01-10-2008 05:14:47


La franja horaria es GMT +2. Ahora son las 11:44:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi