• Viernes 8 de Noviembre de 2024, 18:44

Autor Tema:  Listas-archivos  (Leído 1521 veces)

angel_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
    • http://spaces.msn.com/blueangelluis/
Listas-archivos
« en: Viernes 8 de Junio de 2007, 19:54 »
0
bueno estoy de nuevo por aqui, se me planteo el siguient programa y no busco com resolverlo, tengo vairas ideas, pero no consigo concretarlas, el problem es le siguiente:

debo de elaborar un programa que administre un menu de un restaurant(altas, bajas, consultas y modificaciones de comidas,bebidas y postres.) ahora bein, el chiste esta en que debe de ser todo por listas y el platillo esta en un nodo que a su vez apunta a un nodo que contiene el modo de praparacion, pero tambien a otro noda que contiene sus ingedientes, todo esto debe de estar almacenado en un archivo, si ustedes pudiesen ayudarme con esto se los agradeseria mucho.



angel_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
    • http://spaces.msn.com/blueangelluis/
Re: Listas-archivos
« Respuesta #1 en: Lunes 11 de Junio de 2007, 20:21 »
0
una pregunta, alguien de ustesdes conoce alguna funcion que lea los archivos entro de una carpeta?

otras dudas:
en esta parte del codigo me marca uno errores que son acasua de la cadena que asigno, ya lo hize kon un char y funcioana, pero con la cadena no funciona. es el mimo error en las tres lineas.

Plato *crearPlato(void)
{
   char dato[250];
   Plato *nuevo;
   printf("Clave:\n");
   scanf("%d",&nuevo->clave);
   printf("Nombre del Platillo:\n");
   scanf("%s",&dato);/*gets(dato);*/
   nuevo=(struct Plato*) malloc(sizeof(struct Plato*));
   nuevo->Platillo=dato;/*error*/
   nuevo->sig=NULL;
   nuevo->uten=NULL;
   nuevo->pre=NULL;
   return nuevo;
}

ingredientes *crearingredientes(void)
{
   char dato1[250];
   ingredientes *nuevo1;
   printf("Ingredientes:\n");
   gets(dato1);
   nuevo1=(struct ingredientes*) malloc(sizeof(struct ingredientes*));
   nuevo1->ing=dato1;/*esto me marca un error*/

   return nuevo1;
}

Elaboracion *crearElaboracion(void)
{
   char dato2[250];
   Elaboracion *nuevo2;
   printf("Ingredientes:\n");
   gets(dato2);
   nuevo2=(struct Elaboracion*) malloc(sizeof(struct Elaboracion*));
   nuevo2->elab=dato2;/*error*/

   return nuevo2;
}

otra kosa, podrian explicarme como lee el contenido de un archivo y pasarloa una lista, es decir leo:1 2 3 4 5 6 7 8 9 y k kede 1->2->3->4->5... cada uno en un nodo distinto.

LeGatoRojo

  • Miembro HIPER activo
  • ****
  • Mensajes: 552
  • Nacionalidad: mx
    • Ver Perfil
    • LeGatoRojo
Re: Listas-archivos
« Respuesta #2 en: Lunes 11 de Junio de 2007, 22:27 »
0
Para leerlo y pasarlo a una lista, pues con tu estructura usa fwrite y fread en caso de tenerlo en formato binario...
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.

angel_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
    • http://spaces.msn.com/blueangelluis/
Re: Listas-archivos
« Respuesta #3 en: Martes 12 de Junio de 2007, 03:07 »
0
gracias, pero no es ese el problema, el problema no es el escribir en el archivo, sino al asignar esa cadena a el campo platillo de la estructura plato, donde se da el error, si en vez de una cadena es un solo carater, entocnes funciona bien.

LeGatoRojo

  • Miembro HIPER activo
  • ****
  • Mensajes: 552
  • Nacionalidad: mx
    • Ver Perfil
    • LeGatoRojo
Re: Listas-archivos
« Respuesta #4 en: Miércoles 13 de Junio de 2007, 22:31 »
0
MMM tiene un ejemplo de esa funcion, por que no entendi muy bien..., segun yo usas fread para leer del archivo, y ya lees lo bytes necesarios, pero bueno es mejor ver el código.
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.

angel_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
    • http://spaces.msn.com/blueangelluis/
Re: Listas-archivos
« Respuesta #5 en: Domingo 17 de Junio de 2007, 09:55 »
0
:whistling:  :whistling: ok, ya solucione ese error gracias, ahora tengo otra duda, cree una lista que cada nodo de la lista principal apunta a un nodo y a tambien apunta a una lista, entonces no se como reservar memoria en el archivo para toda la lista principal para k guarde todo.

intente esto pero parese k no funcioana

fread( ,ziseof(listaPrincipal,1,pf);

y no su supe que colocar en el en al parte del bufer.

otra kosa, leo unas cadenas k en en las estructuras las declare de extension 100, entonces durante el proceso las leó pero solo me alamcena hasta el primer espacio que aparezca, komo puedo solucionar eso, ya que es la primera vez k me pasa, siempre habia leido asi y leia canedas completas no se porque pasa eso.