Pascal/Turbo Pascal - registros

 
Vista:

registros

Publicado por RAUL (2 intervenciones) el 03/01/2003 18:01:24
hola!! tengo un problema y espero q me puedan ayudar a solucionarlo.
Este es el primer año q doy progrmacion y este el primer progrma mas o menos serio que hago y algo me esta costando bueno al turron.
mi problema o duda es mas o menos borrar registros de un array pero les pongo en situacion:
tengo una base de datos de agentes de una inmobiliaria y otra base de datos con los clientes cada uno con sus registros que constan de varios campos como nombre,dni etc. lo ke necesito es q pidiendo el dni de un agente por ejemplo borrar el registro perteneciente a ese dni y ademas actualizar la otra base de datos borrando el cammpo agente del registro clientes. Espero haberme explicado bien, de todas maneras kien pueda o kiera ayudarme q me escriba un mail a la direccion [email protected] o bien me conteste en este foro.
muchas gracias anticipadas.
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:registros

Publicado por kanner (3 intervenciones) el 04/01/2003 00:03:19

Para borrar un registro de un archivo tenes que pasar todos los registros excepto el que queres borrar a un nuevo archivo , borrar (erase)el viejo y renombrar (rename) el otro.
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

RE:registros

Publicado por Diego Romero (786 intervenciones) el 04/01/2003 05:40:33
Quiero agregar a la respuesta del amigo kanner que cuando definas los registros de los archivos incluye un flag de tipo boolean que indique si ese registro está borrado o no, de esta forma te evitas tener que volcar el archivo completo a otro archivo mientras estás trabajando con él, con poner esta bandera en true será suficiente, siempre y cuando ignores los registros que estan marcados como "borrados" :).
Luego en algún momento, probablemente cuando el programa sale, puedes realizar el volcado completo de ambos archivos sin hacer que el usuario tenga largas esperas, ¿me explico?.
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:registros

Publicado por raul (2 intervenciones) el 04/01/2003 14:41:01
la verdad es q no te entiendo muy bien. sabes lo ke pasa q no trabajo directamente con el archivo sino q los datos los cargo a una matriz y durante el programa trabajo sobre ella y al final guardo los datos en el archivo. seria lo mismo?con guardarlo al final como me dices no? lo ke no entiendo es lo del flag boolean.
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:registros

Publicado por Diego Romero (786 intervenciones) el 04/01/2003 18:45:19
Supon que tu registro de archivo es mas o menos como este
TRegistro=record
nombre:String[20];
apellido:String[20];
direccion:String[20];
borrado:boolean;
end;

Cuando guardas un nuevo registro asegurate de poner en false el campo "borrado". Cuando el usuario decide eliminar un registro, solo tienes que cambiar a true el valor de "borrado". Cuando lees un registro cualquiera primero preguntas por el valor de "borrado", si es true ignoralo y continua con el siguiente.
Cuando tengas que compactar el archivo, es decir, eliminar físicamente los registros "borrados" has el volcado del archivo tal como propuso kanner, la lógica en seudocodigo sería:
- abrir archivo de datos
- crear archivo temporario
- leer un registro
- si el flag borrado esta true leer siguiente registro
- si no escribir este registro en el temporario
- hasta que sea el fin de archivo
- eliminar archivo de datos
- renombrar el temporario como el archivo de datos.
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