Eliminar un registro de un fichero

Como el nombre indica e creado un fichero con difderentes campos, nombre, código, cd´s, etc. Lo que sucede es que controlo los datos dados de alta a través del código que yo les e asignado y me interasa hacer una función para poder eliminar al menos el código que les e asignado para poder machacar la información y no tengo ni idea de como hacerlo, te agradecería que la respuesta sea lo más clara posible ya que esto no lo tengo muy claro.

1 respuesta

Respuesta
1
... para eliminar un registro de un archivo deberías copiar todo el contenido del archivo en otro auxiliar, sin incluir el registro a borrar. Una vez hayas hecho esto copias el archivo auxiliar sobre el original y ya habrás eliminado el registro que deseabas quitar. De todos modos este proceso puede ser algo lento. Por eso existe el "borrado lógico", que consiste en añadir un campo a cada registro que indique si está borrado o no. De este modo, tú solo debes trabajar con los "no borrados". Así, borrar uno es algo rápido, aunque se desaprovecha espacio de disco. Esto se resolvería añadiendo al programa una opción de "compactado" del archivo, que elimina todos los que están marcados según el algoritmo indicado al principio.
Así, por lo menos, el usuario escoge el momento de borrar los registros... cosa que para grandes ficheros podría ser muy útil, ya que dicho proceso podría activarse por la noche... por ejemplo.
Esta idea me gusta, como tendría que definirlo, ¿cómo si fuera un destructor? O simplemente hago una función que introduzca el código y lo renombre con una marca por ejem. (-).
i gracias por tu respuesta anterior.
Me has dado vidilla :D
... lo que propones de poner un valor "especial" en algún campo, así podrás reconocer los registros borrados... ¿por qué no?
... siempre que a ti te vaya bien...
De todos modos, insisto en que deberías poner, además, una opción en el programa que permita eliminar los registros marcados... que el usuario lo haga cuando quiera, pero así evitarás un crecimiento indefinido del fichero.
Como idea, si quieres, para evitar al usuario tener que pulsar esa opción sin saber muy bien por qué... que también pasaría eso, puedes hacer que el borrado físico (real) se haga cada vez que el programa arranque, por ejemplo.
No sé... eso ya depende del programa que estés haciendo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas