Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Darkestnazgul

#1
entonces que deberia hacer XD soy todavia un nobato xc en especial en esto de los ficheros
#2
esta en C el codigo y pues se supone que debe de modificar y dar debaja datos etc por el momento solo da de alta y muestra el contacto y pues todo lo que necesito que haga ahora es modificar los registros y poder borrar uno eso se hace con fseek() no??

#3
alguien que pueda revisar mi codigo y ayudarme. esta en c y lo que necesito es que modifique bien y borre contacvtos del fichero solo que no se como hacerlo trate usando un fseek pero no se que hacer bien xc

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
   char nombre [35];
   char mail [25];
   int telefono;
}Contacto;

void menu (char* nombreArchivo);
Contacto crearContacto();
void guardarContacto(Contacto contacto, char* nombreArchivo);
void mostrarAgenda(char* nombreArchivo);
void borrarContacto(Contacto contacto, char* nombreArchivo);
void modificarContacto(Contacto contacto,char* nombreArchivo);
void pausar();
int i,buscar=0;
int main(){
   char nombreArchivo[12]="agenda.bin";
   
   menu (nombreArchivo);
      
}
void menu (char* nombreArchivo){
   int opcion;
   do{
      
      system ("cls");
      printf("1. Crear contacto:\n");
      printf("2.Consultar agenda:\n");
      printf("3.borrar contacto:\n");
      printf("4.Modificar contacto:\n");
      printf("5.salir:\n\n");
      printf("ingresa una opcion: ");
      scanf(" %d",&opcion);
      if (opcion>0 && opcion < 6){
         system("cls");
         switch (opcion){
            case 1:
               guardarContacto(crearContacto(),nombreArchivo);
               break;
            case 2:
               mostrarAgenda (nombreArchivo);
               break;
            case 3:
               borrarContacto(Contacto(),nombreArchivo);
               break;
            case 4:
               modificarContacto(Contacto(),nombreArchivo);
            case 5:
               printf("fin del programa \n");
               //pausar();
               break;
               
            
         }
      }
      else {
         printf("\nOpcion no contemplada\n");
         pausar ();
      }
   }while (opcion!=5);
   
}
Contacto crearContacto(){
       Contacto contacto;
     
       printf("Nombre: ");
       scanf(" %[^\n]", contacto.nombre);
       printf("mail: ");
       scanf(" %[^\n]", contacto.mail);
       printf("Telefono: ");
       scanf(" %d", &contacto.telefono);
     
       return contacto;
   }

   void guardarContacto(Contacto contacto, char* nombreArchivo){
       FILE* file= fopen(nombreArchivo, "ab");
     
       if (file==NULL){
           printf("Error al intentar acceder al archivo\n");
           pausar();
       }
       else{
           fwrite(&contacto, sizeof(Contacto), 1, file);
           printf("\nContacto guardado!\n");
           pausar();
           fclose(file);
       }
   }
void mostrarAgenda(char* nombreArchivo){
       FILE* file= fopen(nombreArchivo, "rb");
       int i;
     
       if (file==NULL){
           printf("Error al intentar acceder al archivo\n");
           pausar();
       }
       else{
           Contacto contacto;
           printf("%2s %-35s %-25s %-14s\n", "ID", "Nombre", "mail", "Telefono");
           i = 0;
           while (fread(&contacto, sizeof(Contacto), 1, file)){
              i++;
               printf("%-2u %-35s %-25s %-14d\n", i, contacto.nombre, contacto.mail, contacto.telefono);
           }
           fclose(file);
           printf("\n\n");
           pausar();
       }
   }
void borrarContacto(Contacto contacto,char*nombreArchivo){
   FILE*file=  fopen(nombreArchivo,"wb");
   if (file==NULL){
      printf("no se encontro el contacto a borrar");
      pausar();
      
   }
   else {
   fwrite(&contacto,sizeof(Contacto),1,file);
      printf("\n Contacto eliminado:\n");
      pausar();
      fclose(file);
      
   }
}

void  modificarContacto(Contacto contacto, char*nombreArchivo){
   FILE*file=  fopen(nombreArchivo,"a+b");
   Contacto vec[1];


   printf("ingresa el ID de registro que deseas modificar: ");
   scanf("%i",&buscar);

   fseek(file, 100* sizeof(Contacto), SEEK_SET);
   fwrite(&vec,sizeof(Contacto),1,file);
   
   fseek(file, 100* sizeof(Contacto), SEEK_SET);
   fread(&vec,sizeof(Contacto),1,file);
   
   fgets(nombreArchivo,80,file);


   ftell(file);
   fclose(file);
}
void pausar(){
   printf("Presione ENTER para continuar");
 
   while (getchar() != '\n');
   getchar();
 
   printf("");
}