FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Ficheros
Hola!!!
Tenemos problemas a la hora de hacer un fichero en "Borland C++ Builder 5". No sabemos como meter la información en un fichero. Nos gustaria que nos recomendaseis que tipo de fichero utilizar. No estaria mal que nos mandaseis un trozo de código de ejemplo. Gracias!!! Un saludo. |
#2
|
||||
|
||||
Los archivos de escritura son los ofstream , tenes que declarar una variable de ese tipo, por ejemplo:
Código:
ofstream ArchiSal("salida.txt"); Código:
ofstream ArchiSal("salida.txt"); string Texto1 = "Hola"; string Texto2 = "Mundo"; int num = 1; Archi << Texto1 << Texto2 << endl; Archi << Texto1 << " " << Texto2 << endl; Archi << num << num++ << endl; Archi << num << " " << num++ << endl; Archi << num++ << " " << num << endl; Archi << Texto1 << num << "\n"; Archi << num++ << Texto2 << endl; Para lectura ifstream . Código:
float PromedioDatos() { float x, suma = 0; int cont = 0; ifstream Archivo(“Datos.txt”); while (!Archivo.eof()) { Archivo >> x; suma += x; cont++; } return suma/cont; }
__________________
[Crandel] |
#3
|
||||
|
||||
Sabeis si tambien funciona en la version 3??
Es que lo estoy probando y no me funciona!!
Gracias |
#4
|
||||
|
||||
no lo probe esa versión, seguro que en la 5 y 6 funciona.
Si especificas que error te tira, cpaz te pueda ayudar.
__________________
[Crandel] Última edición por Crandel fecha: 20-05-2005 a las 18:45:38. |
#5
|
|||
|
|||
Ficheros
Prueba este otro codigo, imagino ke estas usando algun tipo de registro, lista enlazada o algo asi:
void nodo::guardar(void)//guarda en un fichero { nodo *AUX = NULL; if (obj.l != NULL) { AUX = obj.l;//obj,l es un objeto ke contiene la cabeza de una lista enlazada ofstream datos("fichero.txt"); if (!datos) ShowMessage( "No se pudo abrir el archivo"); while (AUX != NULL) { //tienes ke declarar una variable por cada dato del registro char nombre[15]; char apellido1[15]; char apellido2[15]; char cedula[10]; char telefono[15]; char celular[15]; char provincia[15]; StrCopy(nombre, AUX->info.nombre); StrCopy(apellido1, AUX->info.apellido1); StrCopy(apellido2, AUX->info.apellido2); StrCopy(cedula, AUX->info.cedula); StrCopy(telefono, AUX->info.telefono); StrCopy(celular, AUX->info.celular); StrCopy(provincia, AUX->info.provincia); if (AUX!=NULL) { datos.write ((unsigned char *) & nombre, sizeof(nombre)); datos.write ((unsigned char *) & apellido1, sizeof(apellido1)); datos.write ((unsigned char *) & apellido2, sizeof(apellido2)); datos.write ((unsigned char *) & cedula, sizeof(cedula)); datos.write ((unsigned char *) & telefono, sizeof(telefono)); datos.write ((unsigned char *) & celular, sizeof(celular)); datos.write ((unsigned char *) & provincia, sizeof(provincia)); } AUX = AUX->sig; } datos.close(); datos.close(); } } void nodo::cargar (void) //carga informacion desdel el fichero { persona p;//mi registro de informacion ifstream datos ("fichero.txt"); obj.l=NULL;//recuerda ke obj.l es la cabeza de mi lista enlazada if (!datos) ShowMessage("No se pudo abrir el archivo"); else { do { //tienes ke cargar la informacion del archivo en cada dato del registro datos.read ((unsigned char *) & p.nombre, sizeof(p.nombre)); datos.read ((unsigned char *) & p.apellido1, sizeof(p.apellido1)); datos.read ((unsigned char *) & p.apellido2, sizeof(p.apellido2)); datos.read ((unsigned char *) & p.cedula, sizeof(p.cedula)); datos.read ((unsigned char *) & p.telefono, sizeof(p.telefono)); datos.read ((unsigned char *) & p.celular, sizeof(p.celular)); datos.read ((unsigned char *) & p.provincia, sizeof(p.provincia)); if (!datos.eof()) obj.insertar(p); } while (!datos.eof()); } datos.close(); datos.close(); } espero t sirva, si no t funcionara me podrias decir ke clase de estructura estas utilizando. Estamos en contacto Última edición por mminorm fecha: 01-06-2005 a las 20:27:48. |
|
|
|