![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
Lo que se hace cuando se presiona en eliminar es sustituir el primer registro por el siguiente, y asi sucesivamente hasta llegar al final. Un mecanismo parecido deberías aplicar tu para que se pueda hacer desde cualquier posición (asegurandote de chequear los puntos extremos claro). Yo no recuerdo, ni encontré alguna función que elimine de una un registro en un archivo. Si te lo contará. En efecto por más que se ponga un vacio, el registro sigue contando. Y al modificar un dato, si el contenido es de menor tamaño notarás que el anterior, notarás que si grabas los cambios. Dicho campo estará con basuras. Por ejemplo, supongamos que antes el campo Nombre tenía guardado: Marcelino. Ahora lo modificar por Carlos. Al final del proceso dicho regitro tendrá esto: Carlosino. Como ves... nos está sobrando el ino. El manejo de estos archivos es un tanto complicado, y el ejemplo que yo hice es básico y solo sirve para comprender mejor algunas cosas en el manejo de estos archivos. Si deseas emplear estos tipos de archivos debes prever muchas cosas, y por tando desarrollar los mecanismos adecuados para eliminar las inconsistencias que se producen por efecto de un cambio, ya sea porque se elimina un registro, como si se lo modificara. Por estos motivos es que los gestores o motores de bases de datos emplean archivos con una estructura diferente. Se basan y se apoyan en técnicas de arboles balanceados para guardar, recorrer, eliminar, y demás operaciones sobre los datos. Sus datos no se guardan específicamente en el orden en que son insertados. Esto les facilita el trabajo enormemente. Implementaciones basadas en archivos de registros obligan a uno recorrer desde el principio al final e implementar procedimientos de "limpieza". No se si explico. Sino está claro por favor dimelo y veo el modo de ayudarte. Ahora, como opción puedo recomendarte que emplees un STtringList. Esta clase posee los métodos de escritura y lectura y facilita la inserción y eliminación de datos. El tema está en que si deseas simular campos, vas a tener que implementar algún mecanismo de "marca". Algún caracter que te delimite un campo de otro. Por ejemplo: dato1#dato2#dato3. Y tu archivo quedará formado así: dato1#dato2#dato3 // registro 1 dato1#dato2#dato3 // registro 2 .... dato1#dato2#dato3 // registro n La otra opción a seguir es guardar cada dato, en una linea diferente, y "saltar" de a n lineas (siendo n la cantidad de campos) para ir de un registro a otro. Ahora, si lo que estás haciendo es algo complejo y/o grande. Lo más recomendable es que emplearas alguna base de datos y te olvidaras de esto. Se lo dejas al motor que haga el trabajo duro por ti, y tu te limitas a realizar la consultas adecuadas. Saludos, Última edición por Delphius fecha: 24-07-2008 a las 20:53:10. |
|
#2
|
||||
|
||||
|
Implementando el ejemplo de Delphius, la opcion de eliminar no funciona correctamente. Pues me deja repetido un registro, y deja registros vacios al final, como ya comento kabracity
Le hice unos arreglos y le agregue la funcion Truncate();, que su funcion es eliminar todos los registros a partir de la posicion actual. Así fue como quedo en mi programa:
De esta forma me funciona perfecto, elimina bien. kabracity El uso de este tipo de ficheros, como decia Delphius, es para cosas sencillas, para algo mas complejo es mejor usar Bases de Datos. En mi caso lo uso, pues solo almacenare un registro de usuarios, que siempre van a ser pocos (nunca seran mas de 10 o 20), no me afectaria el rendimiento. Última edición por JoAnCa fecha: 28-07-2008 a las 18:36:36. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Localizar un array de bytes en un fichero binario. | maro | Varios | 3 | 12-02-2008 11:58:12 |
| Bloquear registro en fichero binario | jonmendi | API de Windows | 3 | 13-11-2007 17:16:31 |
| Ayuda con fichero de texto | jadelphi | Varios | 4 | 07-10-2004 09:43:14 |
| crear fichero de ayuda | empty | Varios | 2 | 04-05-2004 23:12:21 |
| Fichero de Ayuda | jsc | Varios | 2 | 02-04-2004 15:19:38 |
|