elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con archivos!!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con archivos!!!  (Leído 1,140 veces)
theluigy13etv

Desconectado Desconectado

Mensajes: 179


Primero se hace, después se mejora


Ver Perfil
Ayuda con archivos!!!
« en: 28 Junio 2011, 14:45 pm »

Tengo el programa hecho pero creo que hay algún error. El problema es el siguiente: Debo crear un archivo en el compilador Borland C++ 5.02. El archivo está compuesto por registros con los siguientes campos: codigo, apellidos, nombres y edad. El ingreso debe ser de tal manera que no se repitan los códigos ingresados...el código es el siguiente:

# include <stdio.h>
# include <iostream.h>
# include <conio.h>
# include <stdlib.h>

# define lon 80

struct trabajador
{
   int codigo;
   char apellidos[lon+1];
   char nombres[lon+1];
   int edad;
};


int main()
{
   FILE *ftrabajador;
   struct trabajador f1;
   char resp='s';
   int cod_al;
   do{
      clrscr();
      system("color 1e");
      system("title CREACION DE ARCHIVO");
      gotoxy(25,4); cout<<"INGRESO DE DATOS DEL ALUMNO";
      gotoxy(25,5); cout<<"---------------------------";

      ftrabajador=fopen("Empleados.txt","r");
      if(NULL==ftrabajador)
      {
         gotoxy(5,6);
         textcolor(LIGHTRED);
         textbackground(LIGHTBLUE);
         cprintf("No existe ARCHIVO!...CREARE ARCHIVO");
         getchar();
         ftrabajador=fopen("Empleados.txt","a+");
      }
      gotoxy(5,8); cout<<"Codigo: "; cin>>cod_al;
      fread(&f1,sizeof(f1),1,ftrabajador);
      while(!feof(ftrabajador))
      {
         if(f1.codigo==cod_al)
         {
            gotoxy(5,9); textcolor(LIGHTRED); textbackground(LIGHTBLUE); cprintf("Alumno ya esta registrado!!!"); getchar();
            fclose(ftrabajador);
            return 0;
         }
         fread(&f1,sizeof(f1),1,ftrabajador);
      }
      fclose(ftrabajador);
      ftrabajador=fopen("Empleados.txt","a+");
      f1.codigo=cod_al;
      gotoxy(5,9); cout<<"Apellidos: "; gets(f1.apellidos);
      gotoxy(5,10); cout<<"Nombres: "; gets(f1.nombres);
      gotoxy(5,11); cout<<"Edad: "; cin>>f1.edad;
      fwrite(&f1,sizeof(f1),1,ftrabajador);    // Al haberlo abierto en modo a+, permite escribir desde un inicio o continuando si ya habia anteriormente
      fclose(ftrabajador);
      gotoxy(5,13); cout<<"EMPLEADO REGISTRADO";
      gotoxy(5,18); cout<<"Desea ingresar Nuevo Registro..? (S/N)==>"; cin>>resp;
   }while(resp=='s' || resp=='S');

   return  0;
}

!!! EL problema es que me permite ingresar datos y deja que se repitan códigos y eso no debería pasar...espero sus comentarios...Muchas gracias  :)


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con archivos ASF y WMV
Multimedia
dama 1 1,840 Último mensaje 7 Diciembre 2004, 20:19 pm
por Songoku
AYUDA:ARCHIVOS BIN Y CUE
Software
Kasswed 1 9,267 Último mensaje 8 Enero 2005, 01:51 am
por el-brujo
Ayuda con archivos .ape y .cue
Multimedia
josocli 1 1,882 Último mensaje 1 Febrero 2005, 10:40 am
por Songoku
ayuda con archivos nsv
Multimedia
darkwakko 1 1,963 Último mensaje 22 Junio 2006, 20:30 pm
por Sourraund
ayuda archivos wmv
Multimedia
raulll 3 2,148 Último mensaje 28 Septiembre 2006, 09:36 am
por Sourraund
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines