Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Borrar informacion de un archivo!!

Estas en el tema de Borrar informacion de un archivo!! en el foro de C/C++ en Foros del Web. Holaaa!!! bueno tengo un problema, necesito llenar un archivo con una serie de datos de un hospital (nombre del paciente, rut, edad, telefono, etc...) por ...
  #1 (permalink)  
Antiguo 29/11/2010, 20:30
 
Fecha de Ingreso: noviembre-2010
Mensajes: 2
Antigüedad: 10 años, 5 meses
Puntos: 0
Borrar informacion de un archivo!!

Holaaa!!!
bueno tengo un problema, necesito llenar un archivo con una serie de datos de un hospital (nombre del paciente, rut, edad, telefono, etc...) por medio de una estructura y luego tengo que borrar toda la informacion del paciente por medio de su rut, es decir que el programa me pida un rut a ingresar y con ese rut yo tenga que eliminar toda la informacion perteneciente al determinado paciente.

la verdad es que soy bastante novato en programar en C++ y se me hace muy complicado por eso recurro a este medio donde ojala puedan ayudarme.

He leido mucho sobre que para para eliminar un registro de un archivo se debe copiar todo el contenido del archivo en otro auxiliar, sin incluir el registro a borrar. Una vez hecho esto se copia el archivo auxiliar sobre el original y se abra eliminado el registro que deseas quitar.

entiendo lo que se quiere hacer, pero no he encontrado ningun ejemplo de como se puede lograr hacer eso. Si alguien de buena voluntad me puede ayudar seria fantastico.

de antemano GRACIAS..
  #2 (permalink)  
Antiguo 29/11/2010, 20:35
 
Fecha de Ingreso: noviembre-2010
Mensajes: 2
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Borrar informacion de un archivo!!

Código C++:
Ver original
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<string.h>
  4. #include<stdlib.h>
  5.  
  6. struct pac{
  7.      char nombre[30];
  8.      char ape[30];
  9.      int rut;
  10.      int edad;
  11.      int fono;
  12.      char direc[40];
  13.      char isapre[20];
  14.      };
  15. struct med{
  16.      char nombre[30];
  17.      char ape[30];
  18.      int rut;
  19.      char spec[40];
  20.      };
  21.  
  22. int main(){
  23.    
  24. int num,num2,i,rut;
  25. char ape [30];
  26. struct pac pa[3];
  27. struct med me[10];
  28. FILE *arch1;    
  29.     printf("Bienvenido al Sistema de Informacion de hospitales rurales\n\n");
  30.     do{
  31.     printf("Eliga la opcion a la cual necesita ingresar...\n");
  32.     printf("\nOpcion 1: Seccion Pacientes\nOpcion 2: Seccion Medicos\nOpcion 3: Seccion Atenciones\nOpcion 4: Seccion Reserva de Horas\n");
  33.     scanf("%d",&num);
  34.              if(num==1){
  35.                printf("\nHa ingresado a Seccion PACIENTES.\n\n");
  36.                   for(i=0;i<3;i++){
  37.                         printf("Nombre del paciente: ");            
  38.                         scanf("%s",pa[i].nombre);
  39.                         printf("Apellido del paciente: ");            
  40.                         scanf("%s",pa[i].ape);
  41.                         printf("Rut del paciente: ");            
  42.                         scanf("%d",&pa[i].rut);
  43.                         printf("Edad del paciente: ");            
  44.                         scanf("%d",&pa[i].edad);
  45.                         printf("Telefono del paciente: ");            
  46.                         scanf("%d",&pa[i].fono);
  47.                         printf("Direccion del paciente: ");            
  48.                         scanf("%s",pa[i].direc);
  49.                         printf("Isapre del paciente: ");            
  50.                         scanf("%s",pa[i].isapre);
  51.                              printf("\nHasta el momento ha ingresado %d pacientes\n\n",i+1);
  52.                              
  53.        
  54.         arch1=fopen("Pacientes.dat","a");
  55.         fprintf(arch1,"\n");       
  56.         fprintf(arch1,"Paciente %d\nNombre: %s\nApellido: %s\nRut: %d\nEdad: %d\nTelefono: %d\nDireccion: %s\nIsapre: %s\n",i+1,pa[i].nombre,pa[i].ape,pa[i].rut,pa[i].edad,pa[i].fono,pa[i].direc,pa[i].isapre);
  57.         fclose(arch1);
  58.            
  59.                                }
  60.                printf("Elija una opcion\n");
  61.                  printf("Opcion 1: Buscar un paciente por su Rut\nOpcion 2: Buscar un paciente por su Apellido\nOpcion 3: Borrar paciente por el Rut\n");
  62.                  scanf("%d",&num2);                
  63.                                
  64.                    if(num2==1){
  65.                                printf("Ingrese el rut del paciente a buscar: ");
  66.                                scanf("%d",&rut);
  67.                                arch1=fopen("pacientes.dat","r");
  68.                                fread(&pa,sizeof(pa),1,arch1);
  69.                                  for(i=0;i<3;i++){
  70.                                                
  71.                                                   }
  72.                    }            
  73.                    if(num2==2){
  74.                                printf("Ingrese el Apellido del paciente a buscar: ");
  75.                                scanf("%s",ape);
  76.                                }
  77.                    if(num2==3){
  78.                                printf("Ingrese el Rut del paciente a borrar: ");
  79.                                scanf("%d",rut);
  80.                                }


ahy tengo un trozo del codigo que he echo, sin embargo es en la ultima seccion del codigo que les muestro donde tengo que implementar un algoritmo para eliminar el paciente por su rut.. ayuda porfavor =)!

Etiquetas: borrar, informacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:06.