Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Como guardar una lista en un archivo, y luego leer el archivo

Estas en el tema de Como guardar una lista en un archivo, y luego leer el archivo en el foro de C/C++ en Foros del Web. Buenas ocupo terminar un proyecto en c++. El cual es como una pequeña red social ella a base de listas, tengo una lista con personas, ...
  #1 (permalink)  
Antiguo 17/04/2013, 15:40
 
Fecha de Ingreso: abril-2013
Ubicación: costa rica
Mensajes: 2
Antigüedad: 11 años
Puntos: 0
Pregunta Como guardar una lista en un archivo, y luego leer el archivo

Buenas ocupo terminar un proyecto en c++. El cual es como una pequeña red social ella a base de listas, tengo una lista con personas, y cada persona contiene otra lista con sus amigos. EL programa tiene que tener unos metodos como agregar nuevas personas, eliminar.... entre otros. Lo que ocupo es si me pueden aclarar como agarrar la lista una ves creada y guardarla en un archivo, y luego leer el archivo montarlo en la lista, poder modificarla con los respectivos metodos, y guardarla nuevamente en el archivo.

Muchisimas gracias de antemano
  #2 (permalink)  
Antiguo 17/04/2013, 16:08
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Como guardar una lista en un archivo, y luego leer el archivo

Un sistema de bases de datos te viene como anillo al dedo para esta situación en lugar de usar archivos. Particularmente yo uso SQLite, y acá tenes una intro para C/C++.

Espero que te sirva.

  #3 (permalink)  
Antiguo 17/04/2013, 16:09
 
Fecha de Ingreso: abril-2013
Ubicación: costa rica
Mensajes: 2
Antigüedad: 11 años
Puntos: 0
Respuesta: Como guardar una lista en un archivo, y luego leer el archivo

Lamentablemente aun no he llevado bases de datos. Aunq se un poco sobre como manejarlas, no las puedo utilizar.
  #4 (permalink)  
Antiguo 18/04/2013, 14:13
Avatar de jariza  
Fecha de Ingreso: agosto-2003
Ubicación: Málaga
Mensajes: 1.449
Antigüedad: 20 años, 8 meses
Puntos: 10
Respuesta: Como guardar una lista en un archivo, y luego leer el archivo

Hola,

No entiendo tu duda concreta. ¿Quieres que te expliquemos cómo leer una lista de un archivo, cómo modificarla y cómo guardarla? ¿O sólo tienes dudas sobre la parte de tratar con archivos?

Un saludo :)
  #5 (permalink)  
Antiguo 20/04/2013, 04:35
Avatar de Chamibus  
Fecha de Ingreso: mayo-2005
Mensajes: 4
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: Como guardar una lista en un archivo, y luego leer el archivo

Creo que lo que necesitas es esto:

Para poder abrir un fichero para leer y escribir, debes incluir la librería fstream. Aunque eso implica la inclusión automática de la librería iostream, es prudente incluir iostream si planeas usar cin, cout, etc.

Para abrir un fichero para lectura, debes crear un objeto ifstream que se usará como cin. Para crear un fichero de escritura, se crea un objeto ofstream que se comporta como cout. Una vez que tienes abierto el fichero puedes leer o escribir en él como si usaras cualquier objeto ostream.

Una de funciones las más útiles de la librería iostream es getline(), que permite leer una línea (terminada en nueva línea) y guardarla en un objeto string 5. El primer argumento es el objeto ifstream del que se va a leer la información y el segundo argumento es el objeto string. Cuando termina la llamada a la función, el objeto string contiene la línea capturada.
Aquí hay un ejemplo que copia el contenido de un fichero en otro.

// Copy one file to another, a line at a time
#include <string>
#include <fstream>
using namespace std;
int main() {
ifstream in("Scopy.cpp"); // Open for reading
ofstream out("Scopy2.cpp"); // Open for writing
string s;
while(getline(in, s)) // Discards newline char
out << s << "\n"; // ... must add it back
}
Para abrir los ficheros, únicamente tienes que controlar los nombres de fichero que se usan en la creación de los objetos ifstream y ofstream.


getline() lee los caracteres de cada línea hasta que descubre un salto de línea . Sin embargo, descarta el caracter de nueva línea y no lo almacena en el objeto string. Por lo que si quieres copiar el fichero de forma idéntica al original, debes añadir el caracter de nueva línea como te muestro arriba.
Otro ejemplo es copiar el fichero entero en un único objeto string:

// Read an entire file into a single string
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream in("FillString.cpp");
string s, line;
while(getline(in, line))
s += line + "\n";
cout << s;
}
Debido a la naturaleza dinámica de los strings, no hay que preocuparse de la cantidad de memoria que hay
que reservar para el string. Simplemente hay que añadir cosas y el string irá expandiéndose para dar cabida a lo que le introduzca.
Una de las cosas agradables de poner el fichero entero en una cadena es que la clase string proporciona funciones para la búsqueda y manipulación que le permiten modificar el fichero como si fuera una simple línea.

Sin embargo, tiene sus limitaciones. Por un lado, a menudo, es conveniente tratar un fichero como una colección de líneas en vez de un gran bloque de texto. Por ejemplo, si quieres añadir numeración de líneas es mucho más fácil si se tiene un objeto string distinto para cada línea.

El ejemplo está ilustrado con archivos .cpp, pero puedes utilizar perfectamente .txt para las listas de teléfonos que necesitas.

Última edición por Chamibus; 20/04/2013 a las 04:42

Etiquetas: c++, ficheros, listas, programacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:46.