FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Archivos en Delphi
Buenas nochesss, estoy programando una aplicacion en delphi (version 5) y tengo un archivo binario al que le guardo un "record" con varios campos. Logro guardarlo y modificarlo pero me gustaria si pudiesen las distintas maneras que hay para borrar lo que es todo el registro del archivo.
Muchas gracias |
#2
|
||||
|
||||
Se me ocurre un forma:
Crea una nueva versión temporal del archivo (en memoria o en disco), en esta versión almacenas todos los registros excepto el que deseas borrar, después reemplazas la versión temporal que acabas de crear por la anterior y listo "no existirá más", yo sé que no es óptima pero funciona. Un saludo. |
#3
|
||||
|
||||
Cita:
Para mi gusto los file of Record quedaron en el pasado (remoto) habiendo hoy tantas posibilidades, por ejemplo, un ClientDataSet puede mantener archivos binarios como si de una tabla de una base de datos se tratase. // Saludos |
#4
|
||||
|
||||
una posible solucion
Una posible solucion es que implementes tres procedimientos Agregar(TRegistro, var archivo: StringList), Modificar(TRegistro, var archivo: StringList) y eliminar(Tregistro, var Archivo: TStringList)
el archivo contendrá una lista de la siguiente forma: campo1#Campo2#Campo#... Donde # sería algun delimitador.... fijado por vos... Bueno, ahora viene el pequeño problemita: Entonces... cada vez que elimines, agregues o modifiques solo pasa a la variable archivo de cualquiera de estos procedimientos la lista con dichas lineas, para ello primero asignas al TStringList el archivo correspondiente. Es facil ver que haciendo .Add(linea), .Delete(linea) , se agregarán o eliminarán las lineas correspondientes... Es facil ver tambien que linea tiene que ser de la forma ya comentada antes... Si no me entiendes... avisa que te mando un ejemplito... |
#5
|
|||
|
|||
No todo es ClienDataSets
Se que la onda de la Database es buena, pero he encontrado que los tipos records son muy gratos de usar, por todas las combinaciones y tipos que soportan, no creo que quede en el olvido, es simplemente, un recurso más, que viene en el mismo Delphi, no requiere de más na'.
Puedes en este ejemplo usar los archivos tipeados, claro que si. La opcion del delimitador, teniendo que tener en cuanta la sintaxis, me parece un chin complicada. Saludos Fer. |
|
|
|