Buscar y modificar lineas de un fichero

Iniciado por lordluisiv, 17 Abril 2019, 22:11 PM

0 Miembros y 1 Visitante están viendo este tema.

lordluisiv

Hola, espero que todos esten bien.
bueno lo que quiero hacer como explica el titulo es buscar y modificar las lineas de un fichero.


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

/*====================
[Defines]
======================*/
#define cls system("CLS");
#define File_OpenRead doc=fopen("DB_","r");
#define File_OpenWrite doc=fopen("DB_","a+");
/*====================
[Funciones]
======================*/
void guardar();
void cargar();
/*====================
[Base de Datos]
======================*/
FILE *doc;
struct DATA{
char espacio;
char nombre[32];
int edad;
int cedula;
};



/*====================
[Programa]
======================*/
int main()
{
int selec;
printf("1.Guardar dato \n2.Cargar datos\n"); fflush(stdin);
selec = getch();//scanf("%d", &selec);

if(selec == '1'){
guardar();
}else if(selec == '2'){
cls
cargar();
}else{
cls
printf("esa opcion no existe\n");
main();
}

return 0;
}

void guardar()
{
cls
DATA e;
int option;

File_OpenWrite // abriendo el archivo.

do{
cls
e.espacio = '\n';

printf("Ingrese su nombre: "); fflush(stdin);
gets(e.nombre);

printf("Ingrese su cedula: "); fflush(stdin);
scanf("%d", &e.cedula);

printf("Ingrese su edad: "); fflush(stdin);
scanf("%d", &e.edad);

printf("\n\n---Nombre:%s \n---Cedula:%d \n---Edad:%d ", e.nombre, e.cedula, e.edad);
printf("\n\n1.Desea ingresar otro usuario? \n2.desea finalizar el registro? \nElija una opcion porfavor: "); fflush(stdin);
option = getch();//scanf("%d", &option);

fwrite(&e, sizeof(e),1,doc);

}while(option == '1');

fclose(doc); // cerrando el archivo.
cls

main();
}

void cargar()
{
int option;
DATA e;

File_OpenRead
//char palabra;
if(doc == NULL)
{
cls
printf("[ERROR EN EL ARCHIVO]\n");
main();
}           

printf("\t--------Datos Cargados--------\n");

fread(&e, sizeof(e),1,doc);
while(!feof(doc))
{
printf("\n");
printf("\nNombre...: %s",e.nombre);
printf("\nCedula...: %d",e.cedula);
printf("\nEdad.....: %d",e.edad);
fread(&e, sizeof(e),1,doc);
}
fclose(doc);
getch();
cls
main();
}


ese es mi codigo si me pueden ayudar y explicarme como funcionan los cambios que hagan estaria bien, ya que no conozco mucho los codigos(comandos) de los includes y sus funciones.