• Viernes 15 de Noviembre de 2024, 05:58

Mostrar Mensajes

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


Temas - tron2004

Páginas: [1]
1
C/C++ / Ayuda Para Añadir A Un Fichero Binario
« en: Martes 1 de Junio de 2004, 13:39 »
Hola :comp:
Necesito introducir registros en un fichero con toda las estaciones de metro, en un principio el programa me funciona bien, los añade al final del fichero,pero al llegar al registro 75 me borra el primer registro, el 76 me borra el segundo y asi, vamos que solo me permite tener a la vez 75 registros.
los registros son en forma de estructura de tres campos.
 el fichero lo abro como ab+
si alguien tiene alguna pista...

gracias
incluyo el programa y el fichero con las estaciones que crea, para que no tengais mas que probar:

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


#define NOM_FICHERO "metro.bin"
#define NOMBRE  20
#define MAX_LINEAS 12

struct lineas Introducir_Datos (struct lineas estacion);

enum estados {KO, OK};

struct lineas
{
   char nombre[NOMBRE];
   unsigned short int linea;
   enum estados estado;
};

void main ()
{
   struct lineas estacion;
   FILE *fichero;

   fichero = fopen (NOM_FICHERO,"ab");

   rewind (fichero);
   estacion = Introducir_Datos(estacion);

   while(strlen (estacion.nombre)!= 0 )
   {
      fwrite (&estacion, sizeof(estacion),1,fichero);
      estacion = Introducir_Datos(estacion);
   }
   rewind (fichero);
   fread  (&estacion, sizeof(estacion),1,fichero);

   while(!feof(fichero))
   {
     printf ("\n\n\t Linea : %d", estacion.linea);
     printf ("\n\t Estacion : %s", estacion.nombre);
     printf ("\n\t Estado : %d", estacion.estado);
     fread  (&estacion, sizeof(estacion),1,fichero);
   }
   getch();
   fclose (fichero);
}

Páginas: [1]