Borrar registro de ficheros
Publicado por Carlota (4 intervenciones) el 13/05/2008 12:08:09
ola, tengo un problema con un ejercicio k estoy realizando. es el tipico programa de agenda para agregar,bajas..pero con estructuras y ficheros. Mi problema es como borrar un registro de un fichero, es decir,borrar un dat de la agenda que lo tengo almacenado en un fichero. Por favor contestarme si podeis me es urgente o agregarme al msn. kurtis_granada.com. este es el codigo:
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
struct coches
{
char matricula[10];
long anio_compra;
long precio;
};
void alta_vehiculo();
void visualizar();
void borrar_archivo();
void baja_vehiculo();
void main()
{
int opcion;
opcion=0;
do
{
printf(" ********************************** ");
printf(" - MENU - ");
printf(" ********************************** ");
printf(" 1- Alta de vehiculo ");
printf(" 2- Baja de vehiculo ");
printf(" 3- Visualizar vehiculos ");
printf(" 4- Borrado del archivo ");
printf(" 5- Salir ");
printf(" Introduzca una opcion: ");
fflush(stdin);
scanf("%i",&opcion);
switch(opcion)
{
case 1: alta_vehiculo(); break;
case 2: baja_vehiculo(); break;
case 3: visualizar(); break;
case 4: borrar_archivo(); break;
case 5: break;
}
}
while(opcion <5);
}
/********************************************************************************/
void alta_vehiculo()
{
struct coches datos; //variable para meter los datos al fichero
FILE *fichero;
clrscr(); //borrar pantalla
fichero = fopen("vehiculos.dat", "ab");
if(fichero == NULL)
{
printf("ERROR");
exit(0);
}
printf("Introduzca matricula del coche: ");
fflush(stdin);
scanf("%s",&datos.matricula); //meto los datos de uno en uno
printf("Introduzca el año de compra: ");
fflush(stdin);
scanf("%li",&datos.anio_compra);
printf("Introduzca el precio de tasacion: ");
fflush(stdin);
scanf("%li",&datos.precio);
fwrite(&datos, sizeof(datos), 1, fichero); //meto los datos en los ficheros y vuelve al menu
clrscr();
fclose(fichero);
}
/*******************************************************************************/
void visualizar()
{
struct coches datos; //variable para leer los datos
FILE *fichero;
int i;
clrscr();
fichero = fopen("vehiculos.dat", "rb");
if(fichero == NULL)
{
printf("ERROR");
exit(0);
}
while(!feof(fichero)) //leer hasta que sea final de fichero
{
fread(&datos,sizeof(datos),1,fichero); //leer el contenido del fichero
printf("Los vehiculos registrados son: "); //despues los muestro uno a uno = que como los meti en el fichero
printf(" ");
printf("Matricula: %s ",datos.matricula);
printf("Año de compra: %li ",datos.anio_compra);
printf("Precio de Tasacion: %li ",datos.precio);
printf("*****************************: ");
}
fclose(fichero);
getch(); //esperar
clrscr();
}
/*******************************************************************************/
void borrar_archivo()
{
FILE *fichero;
clrscr();
remove("vehiculos.dat"); //borra el fichero
printf("El archivo se borro correctamente...");
getch();
clrscr();
}
/*******************************************************************************/
void baja_vehiculo()
{
}
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
struct coches
{
char matricula[10];
long anio_compra;
long precio;
};
void alta_vehiculo();
void visualizar();
void borrar_archivo();
void baja_vehiculo();
void main()
{
int opcion;
opcion=0;
do
{
printf(" ********************************** ");
printf(" - MENU - ");
printf(" ********************************** ");
printf(" 1- Alta de vehiculo ");
printf(" 2- Baja de vehiculo ");
printf(" 3- Visualizar vehiculos ");
printf(" 4- Borrado del archivo ");
printf(" 5- Salir ");
printf(" Introduzca una opcion: ");
fflush(stdin);
scanf("%i",&opcion);
switch(opcion)
{
case 1: alta_vehiculo(); break;
case 2: baja_vehiculo(); break;
case 3: visualizar(); break;
case 4: borrar_archivo(); break;
case 5: break;
}
}
while(opcion <5);
}
/********************************************************************************/
void alta_vehiculo()
{
struct coches datos; //variable para meter los datos al fichero
FILE *fichero;
clrscr(); //borrar pantalla
fichero = fopen("vehiculos.dat", "ab");
if(fichero == NULL)
{
printf("ERROR");
exit(0);
}
printf("Introduzca matricula del coche: ");
fflush(stdin);
scanf("%s",&datos.matricula); //meto los datos de uno en uno
printf("Introduzca el año de compra: ");
fflush(stdin);
scanf("%li",&datos.anio_compra);
printf("Introduzca el precio de tasacion: ");
fflush(stdin);
scanf("%li",&datos.precio);
fwrite(&datos, sizeof(datos), 1, fichero); //meto los datos en los ficheros y vuelve al menu
clrscr();
fclose(fichero);
}
/*******************************************************************************/
void visualizar()
{
struct coches datos; //variable para leer los datos
FILE *fichero;
int i;
clrscr();
fichero = fopen("vehiculos.dat", "rb");
if(fichero == NULL)
{
printf("ERROR");
exit(0);
}
while(!feof(fichero)) //leer hasta que sea final de fichero
{
fread(&datos,sizeof(datos),1,fichero); //leer el contenido del fichero
printf("Los vehiculos registrados son: "); //despues los muestro uno a uno = que como los meti en el fichero
printf(" ");
printf("Matricula: %s ",datos.matricula);
printf("Año de compra: %li ",datos.anio_compra);
printf("Precio de Tasacion: %li ",datos.precio);
printf("*****************************: ");
}
fclose(fichero);
getch(); //esperar
clrscr();
}
/*******************************************************************************/
void borrar_archivo()
{
FILE *fichero;
clrscr();
remove("vehiculos.dat"); //borra el fichero
printf("El archivo se borro correctamente...");
getch();
clrscr();
}
/*******************************************************************************/
void baja_vehiculo()
{
}
Valora esta pregunta


0