Pascal/Turbo Pascal - Eliminar un registro de un archivo

 
Vista:
sin imagen de perfil

Eliminar un registro de un archivo

Publicado por Atenea (2 intervenciones) el 10/01/2023 04:25:57
Buenas.
Me encuentro haciendo un trabajo final de la facultad y estoy un poco perdida de cómo hacer un procedimiento para eliminar un registro de un archivo. Por lo que tengo entendido hay que pasar todos los registros que no se desean eliminar a un archivo nuevo para luego eliminar el archivo anterior con el registro que se desea eliminar y renombrar el archivo. Intente hacer el código pero me da error y no logro identificar el por qué.
Si alguien me puede ayudar se lo agradecería.

RUTTA='C:\Users\atenea\OneDrive\Escritorio\Proyecto Final/archivot';

PROCEDURE ELIMINAR_TERRENO(var ARCH_CONTRIBUYENTE:T_ARCHIVOC;VAR ARCH_TERRENO:T_ARCHIVOT;POSICION:T_PUNT);
VAR
ARCH_NUEVO:T_ARCHIVOT;
REG,REGI:T_TERRENOS;
X:T_PROPIETARIOS;
AUX:STRING[8];
I:BYTE;
DATO:STRING;
BEGIN
SEEK(ARCH_CONTRIBUYENTE,POSICION^.INFO.POS-1);
READ(ARCH_CONTRIBUYENTE,X);
AUX:=X.NUM; //NUMERO DE CONTRIBUYENTE

//ABRIR_TERRENO(ARCH_TERRENO)

ASSIGN(ARCH_TERRENO,RUTTA);
{$I-}
RESET(ARCH_TERRENO);
{$+}
IF IORESULT<>0 THEN
REWRITE(ARCH_TERRENO);


//NUEVO ARCHIVO
ASSIGN(ARCH_NUEVO,RUTTA);
REWRITE(ARCH_NUEVO);

FOR I:=0 TO FILESIZE(ARCH_TERRENO)-1 DO
BEGIN
SEEK(ARCH_TERRENO,I);
READ(ARCH_TERRENO,REG);
IF REG.NUME<> AUX THEN
BEGIN
REGI.NUME:=REG.NUME;
REGI.NUM_MENSURA:=REG.NUM_MENSURA;
REGI.VALOR:=REG.VALOR;
REGI.FECHA_INS:= REG.FECHA_INS;
REGI.DOM_PARCEL:= REG.DOM_PARCEL;
REGI.SUP_TERRENO:=REG.SUP_TERRENO;
REGI.ZONA:=REG.ZONA;
REGI.TIPO_EDIF:=REG.TIPO_EDIF;
END;
CLOSE(ARCH_NUEVO);
CLOSE(ARCH_TERRENO);

Erase(ARCH_TERRENO);
Rename(ARCH_NUEVO,'ARCH_TERRENO');

end;

END;
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