• Domingo 19 de Mayo de 2024, 20:37

Autor Tema:  Re: ayuda en archivos  (Leído 1124 veces)

incognito

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: ayuda en archivos
« en: Sábado 20 de Septiembre de 2003, 06:18 »
0
Hola Amigos
 tengo un problema con un archivo que maneja cadena de caracteres como campos, en realidad no se que puede ser pero no me graba ciertos datos. por ejemplo, tengo la siguiente rutina:

 // procedimiento de ingreso de datos //
void ingresar()
{
    FILE *fi;
    char rut[10];
    char nombre[30];
    char sexo[9];
    char fnac[10];
    char fing[10];
    char nivel[1];
    int  sala;
    int  nrocama;

    int sw,sex,niv;
    int op;

    clrscr();
    if ((fi=fopen("a:Paciente.dat","a")) == NULL)
   {
     clrscr();
     printf("El archivo no existe ");
     exit(0);
    }
    op=0;
    while (op!=9)
    {
      clrscr();
      gotoxy (20,5);printf ("Rut                             : ");
      gotoxy (20,6);printf ("Nombre                          : ");
      gotoxy (20,7);printf ("Sexo (1=Masculino) (2=femenino) : ");
      gotoxy (20,8);printf ("Fecha Nacimiento                : ");
      gotoxy (20,9);printf ("Fecha Ingreso a hospital        : ");
      gotoxy (20,10);printf("Nro. nivel (1=A 2=B 3=C 4=D)    : ");
      gotoxy (20,11);printf("Nro. de Sala (1 - 10)           : ");
      gotoxy (20,12);printf("Nro. de cama (1 - 5)            : ");
      gotoxy (55,5);scanf("%s",rut);
      gotoxy (55,6);scanf("%s",nombre);
      gotoxy (55,7);scanf("%d",&sex);
      if (sex==1)
   strcpy(sexo,"masculino");
   else
     if (sex==2)
        strcpy(sexo,"femenino ");
      gotoxy (55,8);scanf("%s",fnac);
      gotoxy (55,9);scanf("%s",fing);
      gotoxy (55,10);scanf("%d",&niv);
      if (niv==1)
     strcpy(nivel,"A");
   else
     if (niv==2)
        strcpy(nivel,"B");
       else
         if (niv==3)
       strcpy(nivel,"C");
       else
         if (niv==4)
             strcpy(nivel,"D");

      gotoxy (55,11);scanf("%d",&sala);
      gotoxy (55,12);scanf("%d",&nrocama);

      fflush(stdin);
      fprintf(fi,"%s %s %s %s %s %s %d %d",rut, nombre, sexo, fnac, fing, nivel, sala, nrocama);
      gotoxy(20,20);printf("ENTER (continua) - 9 (Finaliza)");
      gotoxy(52,20);scanf("%d",&op);
  }
  fclose(fi);
}

pero no me graba los datos de la fecha de ingreso (fing), tampoco el (sexo, nivel),
podria alguien ayudarme porfavor,

si tienen algun ejemplo de manejo de cadenas en c, y archivo. me podrian enviar a mi correo:
rovas2001@vtr.net.
de ante mano muchas gracias

cyber

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
ayuda en archivos
« Respuesta #1 en: Martes 23 de Septiembre de 2003, 00:13 »
0
Hi;
Debes leer sobre el tratamiento de ficheron en C++.
Hay bastante información al respecto en internet, y por cierto muy clara.
No obstante te mandé un documento a la dirección de correo que posteaste.

Slds
cyber