UTNianos

Versión completa: Problema Codificando Pascal
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
A ver quien me ayuda por favor

estoy haciendo un programa en el cual tengo un archivo de deudas con deudas de clientes, un archivo de pagos con los pagos que hicieron y tengo que crear un archivo nuevo con las deudas actualizadas segun lo que pagaron.
el programa diagramado ya lo tengo bien, pero cuando lo paso a pascal hay algo que no puedo hacer

por ejemplo, supongamos que un cliente no pago nada, yo directamente copio las deudas que tenia del archivo viejo de deudas y las paso al actualizado sin modificar nada, porque al no pagar nada tiene la misma deuda de siempre y se la paso al nuevo actualizado.

Cuando pongo por ejemplo write(ArchivoNuevoActualizado,RegistroViejoDeudas) , para copiar el registro viejo con las deudas al nuevo actualizado, me tira type mismatch. O sea, yendo al grano, no se como copiar un registro de un archivo a otro archivo. En type ya defini todo, pero bueno les paso lo que defini aca a ver si alguno ve un error o como hay que hacerlo realmente.


Program ccc;
uses Newdelay, crt;
type
RDeudas = record
NCli: integer;
NmCli: string[20];
FUP: longint;
ITA: real;
end;
FDeudas = file of RDeudas;

Rpagos = record
NCli: integer;
FUP: longint;
ImPag: real;
end;
FPagos = file of RPagos;

RNad = record
NCli: integer;
NmCli: string[20];
FUP: longint;
ITA: real;
end;
FNad = file of RNad;

var
ArPagos: FPagos;
ArDeudas: FDeudas;
ArNad: FNad;
regd: RDeudas;
regP: RPagos;
regNad: RNad;
FTol: longint;
FUlt: longint;
AcImp: real;
NCliA: integer;

begin

assign(ArPagos,'PAGOSO.DAT');
reset(ArPagos);
assign(ArDeudas,'DCLIENT.DAT');
reset(ArDeudas);
assign(ArNad,'NAD.DAT');
Rewrite(ArNad);

writeln('Ingrese fecha de tolerancia: ');
readln(ftol);

... etc
El error que te tira es por problema de tipo de dato, no coinciden

Fijate que el archivo tenga la misma estructura de tipo de dato del cual queres grabar.

No podes grabar un reg con int char a un archivo que tiene como estructura definida un reg que es int int.

Slds
y pero te estoy mostrando como declare los archivos, ardeudas tiene el mismo tipo de datos que arnad..

alguna solucion?..
si, pero eso lo sabemos nosotros, para pascal son dos tipos de datos distintos
en vez de declarar otra vez RDeudas con otro nombre, pone FNad = file of RDeudas;
eso ya lo intente, pero despues en el programa tengo ke declarar los registros de ArNad y no hay manera si lo declaro como tipo regdeudas... igualmente esto ya lo solucione... ahora me tira error file not open.. una verga
URLs de referencia