Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/06/2015, 03:31
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: Preguntas sobre ficheros

Poco más que añadir a lo comentado por @dehm. Pero por probar que no falte :)

Cita:
Iniciado por newb Ver Mensaje
Mi pregunta es, para guardar/cargar por donde comienzo?
No hay una única forma de guardar la información. Tienes que pensar la manera de organizar la información a guardar para luego recuperarla correctamente.

Cita:
Iniciado por newb Ver Mensaje
Puedo guardar todo en un mismo archivo? o tiene que ser un archivo para cada clase/lista?
Esta organización puede usar un fichero o varios, es indiferente. Lo único importante es que esté almacenada de tal forma que pueda recuperarse la información.

Lo que tienes que intentar es reducir al máximo la redundancia y facilitarte lo máximo posible la lectura de los datos.

Cita:
Iniciado por newb Ver Mensaje
hay problemas si las clases tienen punteros de las listas en los atributos?
En un fichero puedes guardar lo que te venga en gana. Únicamente tienes que preocuparte de que este todo correctamente estructurado.

Como estas respuestas, como tal, no te van a aclarar nada, vamos con ejemplos.

Por ejemplo, si tienes una lista de alumnos y luego esos alumnos se pueden apuntar a una o varias clases. Si tienes que guardar esta información puedes optar por varias opciones:

  • Puedes guardar, para cada clase, el listado de alumnos que pertenecen a la misma. Esta opción tiene mucha redundancia, ya que cada alumno puede aparecer varias veces y eso te acaba complicando la lectura del archivo
  • Puedes guardar, para cada alumno, el listado de clases a las que está apuntado. Esta opción tambien tiene bastante redundancia porque cada clase aparecerá repetida varias veces.


Estas han sido dos opciones malas. Las buenas, dado que los datos están relacionados entre ellos, es aprovechar las "relaciones". Con datos relacionales es importante que cada dato tenga un índice o un identificador único, de tal forma que puedas ser capaz de encontrar un elemento en una lista únicamente conociendo dicho identificador.

La idea entonces es aprovechar estos identificadores para establecer las relaciones.

En el caso del ejemplo, imaginemos que tenemos 3 alumnos y 2 clases:

Alumnos:
1. Roberto
2. Ana
3. Lara

Clases:
1. Matemáticas (Roberto y Ana)
2. Física (Ana y Lara)

Usando las relaciones podríamos almacenar los datos de la siguiente manera:
Alumnos:
id - nombre
1 - Roberto
2 - Ana
3 - Lara

Clases:
id - nombre
1 - Matemáticas
2 - Física

AlumnosPorClase:
clase - alumno
1 - 1 (Matemáticas - Roberto)
1 - 2 (Matemáticas - Ana)
2 - 2 (Física - Ana)
2 - 3 (Física - Lara)

Con esta estructura podemos leer primero el listado de alumnos, después el listado de clases y, finalmente, apuntar a los alumnos en las clases que le corresponden.

Esta es sólo una de las múltiples formas de guardar los datos.

También podría valer una tal que:
Alumnos:
id - nombre
1 - Roberto
2 - Ana
3 - Lara

Clases:
id - nombre - alumno1 - alumno2 - ...
1 - Matemáticas - 1 - 2
2 - Física - 2 - 3

Lo importante, al menos por el momento, es que sepas sacar partido a las relaciones y que aprendas a organizar los datos para almacenarlos en archivos.

Un saludo