Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/07/2012, 13:37
josealfonso1
 
Fecha de Ingreso: diciembre-2007
Mensajes: 38
Antigüedad: 16 años, 11 meses
Puntos: 0
Funcion para editar registros

Tengo un codigoo muy sencillo y basico para manejear ficheros en C, me gustaria que me ayudaran a crear una funcion que puedea editar los registros....Hata ahora, este codigo puede:

1) crear un archivo,
2) Insertar varios registros al archivo
3) ver los todos los registros previamente insertados


Pero necesito una pequeña funcion que me permita editar un registro dterminado... Por ejemplo cambiar el nombre, la edad o el sueldo.... La funcion debe llamarse Editar_datos()

ayudenme porfavor aca les dejo el codigo

Código:
/*
 *      FicheroCompleto.c
 *      
 *      Copyright 2009 Julio César Brizuela <brizuela@linux-qxlk>
 *      
 */
 
#include <stdio.h>
 
void menu();
void CrearFichero(FILE *Fichero);
void InsertarDatos(FILE *Fichero);
void VerDatos(FILE *Fichero);
 
struct sRegistro {
   char Nombre[25];
   int Edad;
   float Sueldo;
} registro;
 
int main()
{
        int opcion;
        int exit = 0;
        FILE *fichero;
 
        while (!exit)
        {       
                menu();
                printf("\nOpcion: ");
                scanf("%d", &opcion);
 
                switch(opcion)
                {
                        case 1:
                                CrearFichero(fichero);
                        break;
                        case 2:
                                InsertarDatos(fichero);
                        break;
                        case 3:
                                VerDatos(fichero);
                        break;
                        case 4:
                                exit = 1;
                        break;
                        default:
                                printf("\nopcion no valida");
                }
        }
 
        return 0;
}
 
void menu()
{
        printf("\nMenu:");
        printf("\n\t1. Crear fichero");
        printf("\n\t2. Insertar datos");
        printf("\n\t3. Ver datos");
        printf("\n\t4. Salir");
}
 
void CrearFichero(FILE *Fichero)
{
        Fichero = fopen("fichero", "r");
 
        if(!Fichero)
        {
                Fichero = fopen("fichero", "w");
                printf("\nArchivo creado!");
        }
        else
        {
                printf("\nEl fichero ya existe!");
        }
 
        fclose (Fichero);
 
        return;
}
 
void InsertarDatos(FILE *Fichero)
{
        Fichero = fopen("fichero", "a+");
 
        if(Fichero == NULL)
        {
                printf("\nFichero no existe! \nPor favor creelo");
                return;
        }
 
        printf("\nDigita el nombre: ");
        scanf("%s", &registro.Nombre);
 
        printf("\nDigita la edad: ");
        scanf("%d", &registro.Edad);
 
        printf("\nDigita el sueldo: ");
        scanf("%f", &registro.Sueldo);
 
        fwrite(&registro, sizeof(struct sRegistro), 1, Fichero);
 
        fclose(Fichero);
 
        return;
}
 
void VerDatos(FILE *Fichero)
{
        int numero = 1;
 
        Fichero = fopen("fichero", "r");
 
        if(Fichero == NULL)
        {
                printf("\nFichero no existe! \nPor favor creelo");
                return;
        }
 
        fread(&registro, sizeof(struct sRegistro), 1, Fichero);
 
        printf("\nNumero \tNombre \tEdad \tSueldo");
 
        while(!feof(Fichero))
        {
                printf("\n%d \t%s \t%d \t%.2f", numero, registro.Nombre,
                registro.Edad, registro.Sueldo);
                fread(&registro, sizeof(struct sRegistro), 1, Fichero);
                numero++;
        }
 
        fclose(Fichero);
 
        return;
}