Welcome Guest
[Log In]
[Register]
| If you're already a member please log in to your account to access all of our features: |
- Pages:
- 1
- 2
| ***** ******!; *** ****** (20) | |
|---|---|
| Tweet Topic Started: Aug 21 2007, 01:39 AM (472 Views) | |
| GreenMan | Aug 22 2007, 12:32 AM Post #21 |
|
Rapsodia bohemia
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
#include<conio.h> #include<stdio.h> #include<stdlib.h> #include<ctype.h> struct registro{ int codigo; char nombre[20]; char telefono[11]; char email[20]; }datos; void menu(), alta(), listado(), consulta(), modificar(), modificar_selectivo(), baja(), terminar(), ultimo_codigo(), error_archivo(FILE *); int ultimo=0; void main(){ clrscr(); ultimo_codigo(); menu(); } void menu(){ int opcion='9'; while (opcion!='0'){ clrscr(); printf("1- Alta\n"); printf("2- Listado\n"); printf("3- Consulta\n"); printf("4- Modificar\n"); printf("5- Modificar Selectivo\n"); printf("6- Baja\n\n"); printf("0- Terminar\n"); opcion=getch(); switch (opcion){ case '1': alta(); break; case '2': listado(); break; case '3': consulta(); break; case '4': modificar(); break; case '5': modificar_selectivo(); break; case '6': baja(); break; case '0': terminar(); break; default: printf("Error, opcion inavalida (%c)\n",opcion); getch(); } } } void alta(){ FILE *p_arch=NULL; struct registro d; clrscr(); p_arch=fopen("c:\\datos.dat","ab"); error_archivo(p_arch); printf(">> ALTA <<\n"); printf("Codigo: %d\n",ultimo); d.codigo=ultimo; printf("Nombre: "); scanf("%s",d.nombre); printf("Telefono: "); scanf("%s",d.telefono); printf("eMail: "); scanf("%s",d.email); fwrite(&d,sizeof(datos),1,p_arch); ultimo++; fclose(p_arch); } void ultimo_codigo(){ FILE *p_arch=NULL; int cantidad=0; p_arch=fopen("c:\\datos.dat","rb"); if (p_arch==NULL){ printf("Nuevo"); p_arch=fopen("c:\\datos.dat","wb"); ultimo=1; } else{ fseek(p_arch,0,SEEK_END); cantidad=ftell(p_arch)/sizeof(datos); ultimo=cantidad; ultimo++; } fclose(p_arch); } void listado(){ FILE *p_arch=NULL; clrscr(); p_arch=fopen("c:\\datos.dat","rb"); error_archivo(p_arch); printf("%-6s %-20s %-11s %-20s\n","Codigo", "Nombre", "Tel‚fono", "email"); while(fread(&datos,sizeof(datos),1,p_arch)!=0){ printf("%6d ",datos.codigo); printf("%-20s ",datos.nombre); printf("%-11s ",datos.telefono); printf("%-20s\n",datos.email); } getch(); fclose(p_arch); } void consulta(){ FILE *p_arch=NULL; int codigo=ultimo; while ((codigo>ultimo-1) || (codigo<=0)){ clrscr(); printf(">> CONSULTAR <<\n"); printf("Ingrese el Codigo entre (1-%d): ",ultimo-1); scanf("%d",&codigo); } p_arch=fopen("c:\\datos.dat","rb"); error_archivo(p_arch); fseek(p_arch,sizeof(datos)*(codigo-1),SEEK_SET); fread(&datos,sizeof(datos),1,p_arch); printf("Codigo: %d\n", datos.codigo); printf("Nombre: %s\n", datos.nombre); printf("Tel‚fono: %s\n", datos.telefono); printf("eMail: %s\n\n", datos.email); getch(); fclose(p_arch); } void modificar(){ FILE *p_arch=NULL; int codigo=ultimo; while ((codigo>ultimo-1) || (codigo<=0)){ clrscr(); printf(">> MODIFICAR <<\n"); printf("Ingrese el Codigo entre (1-%d): ",ultimo-1); scanf("%d",&codigo); } p_arch=fopen("c:\\datos.dat","rb"); error_archivo(p_arch); fseek(p_arch,sizeof(datos)*(codigo-1),SEEK_SET); fread(&datos,sizeof(datos),1,p_arch); printf("Codigo: %d\n", datos.codigo); printf("Nombre: %s\n", datos.nombre); printf("Tel‚fono: %s\n", datos.telefono); printf("eMail: %s\n\n", datos.email); fclose(p_arch); p_arch=fopen("c:\\datos.dat","rb+"); error_archivo(p_arch); fseek(p_arch,sizeof(datos)*(codigo-1),SEEK_SET); printf("Codigo: %d\n",codigo); printf("Nombre: "); scanf("%s",datos.nombre); printf("Tel‚fono: "); scanf("%s",datos.telefono); printf("eMail: "); scanf("%s",datos.email); fwrite(&datos,sizeof(datos),1,p_arch); printf("Datos modificados\n"); getch(); fclose(p_arch); } void modificar_selectivo(){ FILE *p_arch=NULL; int codigo=ultimo, opcion=0; while ((codigo>ultimo-1) || (codigo<=0)){ clrscr(); printf(">> MODIFICAR <<\n"); printf("Ingrese el Codigo entre (1-%d): ",ultimo-1); scanf("%d",&codigo); } p_arch=fopen("c:\\datos.dat","rb+"); error_archivo(p_arch); fseek(p_arch,sizeof(datos)*(codigo-1),SEEK_SET); fread(&datos,sizeof(datos),1,p_arch); while (opcion!='0'){ clrscr(); gotoxy(10,12);cprintf("<<<<<Codigo>: %d", datos.codigo); gotoxy(10,14);cprintf("(1)-<Nombre>: %s", datos.nombre); gotoxy(10,16);cprintf("(2)-<Tel‚fono>: %s", datos.telefono); gotoxy(10,18);cprintf("(3)-<eMail>: %s", datos.email); gotoxy(10,20);cprintf("(0)-<Terminar>", datos.email); opcion = getch(); switch(opcion){ case '1': gotoxy(26,14); clreol(); gotoxy(26,14); gets(datos.nombre); break; case '2': gotoxy(26,16); clreol(); gotoxy(26,16); gets(datos.telefono); break; case '3': gotoxy(26,18); clreol(); gotoxy(26,18); gets(datos.email); break; case '0': break; default: gotoxy(26,20); cprintf("\nOpcion incorrecta!!!\n"); getch(); break; } } fseek(p_arch,sizeof(datos)*(codigo-1),SEEK_SET); fwrite(&datos,sizeof(datos),1,p_arch); printf("\nDatos modificados\n"); getch(); fclose(p_arch); } void baja(){ FILE *p_arch=NULL, *p_aux=NULL; int codigo=ultimo; //SOLICITA EL INGRESO DEL CODIGO A BORRAR while ((codigo>ultimo-1) || (codigo<=0)){ clrscr(); printf(">> BAJA <<\n"); printf("Ingrese el Codigo entre (1-%d): ",ultimo-1); scanf("%d",&codigo); } p_arch=fopen("c:\\datos.dat","rb"); error_archivo(p_arch); fseek(p_arch,sizeof(datos)*(codigo-1),SEEK_SET); fread(&datos,sizeof(datos),1,p_arch); printf("\nSe van a eliminar los siguientes datos:\n\n"); printf("Codigo: %d\n", datos.codigo); printf("Nombre: %s\n", datos.nombre); printf("Tel‚fono: %s\n", datos.telefono); printf("eMail: %s\n\n", datos.email); printf("¨CONFIRMA? S - Si, otra tecla No\n"); if(toupper(getch())=='S'){ //GENERAR ARCHIVO AUXILIAR SIN EL REGISTRO A BORRAR fseek(p_arch,0,SEEK_SET); p_aux=fopen("c:\\auxi.dat","wb"); error_archivo(p_aux); while(fread(&datos,sizeof(datos),1,p_arch)!=0){ if(datos.codigo < codigo) fwrite(&datos,sizeof(datos),1,p_aux); else{ if(datos.codigo > codigo){ datos.codigo--; fwrite(&datos,sizeof(datos),1,p_aux); } } } fclose(p_aux); fclose(p_arch); //COPIAR AUX.DAT A DATOS.DAT p_aux=fopen("c:\\auxi.dat","rb"); error_archivo(p_aux); p_arch=fopen("c:\\datos.dat","wb"); error_archivo(p_arch); while(fread(&datos,sizeof(datos),1,p_aux)!=0) fwrite(&datos,sizeof(datos),1,p_arch); fclose(p_aux); fclose(p_arch); ultimo--; printf("\nDatos Eliminados\n"); getch(); } } void terminar(){ printf("\n Finalizando..."); getch(); } void error_archivo(FILE *archivo){ if (archivo == NULL){ printf("\nError de E/S en un archivo\n"); getch(); exit(1); } } |
![]() |
|
| Gennosuke | Aug 22 2007, 12:34 AM Post #22 |
![]()
RKO
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
:o 3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 |
![]() |
|
| Yue-sama | Aug 22 2007, 01:16 AM Post #23 |
|
L2 Gravedad Zero!
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
topic cerrado! |
![]() |
|
| 1 user reading this topic (1 Guest and 0 Anonymous) | |
| « Previous Topic · SPAMLANDIA · Next Topic » |
- Pages:
- 1
- 2
| Track Topic · E-mail Topic |
9:54 PM Jul 10
|






9:54 PM Jul 10