Pascal/Turbo Pascal - como borrar registro?

 
Vista:

como borrar registro?

Publicado por Javier Ivàn Robles (8 intervenciones) el 31/03/2003 00:46:17
No tengo idea de como borrar un registro en un archivo es como un tipo agenda. alguien me podrìa ayudar
gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como borrar registro?

Publicado por Diego Romero (786 intervenciones) el 31/03/2003 01:32:50
Pascal no es un lenguaje manejador de bases de datos, los mencanismos de lectura y escritura de un archivo con tipo son abstracciones de lo que el sistema oprativo puede hacer y este no contempla en ningún caso el borrado de un registro "en el medio", por lo que la implementación de esta funcionalidad queda a cargo del programa de aplicación. Existen varias formas de abordar este problema pero creo que el más sencillo es que cuando crees la estructura de registro de tu archivo incluyas un campo de tipo boolean que puesto a true indicará que ese registro está borrado, cuando leas el archivo deberías ignorar estos registros con este campo en este valor. Para compactar el archivo, es decir eliminar físicamente los registros marcados para borrar, deberías proceder a leer secuencialmente el archivo de punta a punta y volcar los registros no borrados a un archivo temporal, borrar el archivo original y renombrar el temporal con el mismo nombre que el original, lo que convertiría al temporal en el nuevo original ya sin los registros borrados. Esta tecnica la usan por ejemplo los manejadores de bases de datos basados en el formato .DBF y Paradox.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como borrar registro?

Publicado por César Augusto Navarro Gómez (182 intervenciones) el 31/03/2003 18:02:22
Otra alternativa sería que utilices la función Truncate que elimina todos los registros del archivo a partir de la posición del puntero de archivo hasta el final, la desventaja de esto es que debes de correr los registros a borrar hasta el final lo cual en ocasiones es algo engorroso. Cuando yo lo utilice lo que hacía era utilizar un "corrimiento de registros en que si quería borrar la posición 7 le copiaba a esta posicion la 8, a la 8 le copiaba la 9, a la 9 la 11, etc, así hasta llegar al final y lo que hacia era usar el truncate en el ultimo registro, sin embargo es bastante pesado si tienes demasiada información.
Si tu volumen de información es demasiado grande podrías primero aplicar el uso del campo que comentó Diego y posteriormente aplicar el truncate en vez de copiar todo el archivo.
En fin espero que te sirva, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar