problema con punteros
Publicado por Miguel (10 intervenciones) el 16/06/2011 13:40:17
hola, escribo porque tengo un problema en una practica que estoy realizando en la universidad, ya que el programa consiste en el manejo de ficheros y memoria dinamica, y da siempre un fallo en el apartado de hacer facturas manuales y automaticas, el fallo es exitcode 216, y no consigo resolverlo
[code
]Procedure busquedaPedido(listacliente:pcliente;var p:Pedido;
var listafactura:pfactura);
begin
while not listavaciaP(listapedido) do
begin
If listapedido^.infopedido.npedido = p.npedido then
begin
listafactura^.infoFactura.cifcliente:=listacliente^.infoc.nif;
listaFactura^.infofactura.impfactura:=Listapedido^.infopedido.imppedido;
end;
listapedido:=listapedido^.sig;
end;
end;
Procedure FacturaManualC(var listafactura:pFactura;listaPedido:pPedido;
listacuota:pCuota;ct:cuota; var f:factura; p:pedido);
var
op:char;
begin
clrscr;
mostrarlistaP(listapedido);
clrscr;
writeln('Introduzca N§ de Pedido: ');
readln(p.npedido);
clrscr;
if busquedaPendiente(listapedido,p) then
begin
Repeat
begin
writeln('________________ Facturas _________________');
busquedapedido(listacliente,p,listafactura);
Writeln('Numero de Facturas: ');
f.nfactura:=numerofactura(listafactura);
Writeln(f.nfactura);
f.cifcliente:=listafactura^.infofactura.cifcliente;
writeln('CIF: ',listafactura^.infofactura.cifcliente);
writeln('Fecha: ');
fechaf(f);
write(f.fecha);
f.impfactura:=Listafactura^.infofactura.impfactura;
writeln('Importe total: ',Listafactura^.infofactura.impfactura);
anhadirFactura(listafactura,f);
listaPedido^.infoPedido.estado:='F';
writeln('Presione [S] para continuar');
readln(op);
end;
until (op='s');
end
else
Writeln('Pedido en estado de anulado o facturado');
crearcuotas(listacliente,listacuota,listafactura,ct);
end;
[/code]
el fallo da en el procedure busquedapedido al principio del if, cuando asigna el valor listafactura^.infoFactura.cifcliente:=listacliente^.infoc.nif;
gracias a todo el que conteste¡¡
[code
]Procedure busquedaPedido(listacliente:pcliente;var p:Pedido;
var listafactura:pfactura);
begin
while not listavaciaP(listapedido) do
begin
If listapedido^.infopedido.npedido = p.npedido then
begin
listafactura^.infoFactura.cifcliente:=listacliente^.infoc.nif;
listaFactura^.infofactura.impfactura:=Listapedido^.infopedido.imppedido;
end;
listapedido:=listapedido^.sig;
end;
end;
Procedure FacturaManualC(var listafactura:pFactura;listaPedido:pPedido;
listacuota:pCuota;ct:cuota; var f:factura; p:pedido);
var
op:char;
begin
clrscr;
mostrarlistaP(listapedido);
clrscr;
writeln('Introduzca N§ de Pedido: ');
readln(p.npedido);
clrscr;
if busquedaPendiente(listapedido,p) then
begin
Repeat
begin
writeln('________________ Facturas _________________');
busquedapedido(listacliente,p,listafactura);
Writeln('Numero de Facturas: ');
f.nfactura:=numerofactura(listafactura);
Writeln(f.nfactura);
f.cifcliente:=listafactura^.infofactura.cifcliente;
writeln('CIF: ',listafactura^.infofactura.cifcliente);
writeln('Fecha: ');
fechaf(f);
write(f.fecha);
f.impfactura:=Listafactura^.infofactura.impfactura;
writeln('Importe total: ',Listafactura^.infofactura.impfactura);
anhadirFactura(listafactura,f);
listaPedido^.infoPedido.estado:='F';
writeln('Presione [S] para continuar');
readln(op);
end;
until (op='s');
end
else
Writeln('Pedido en estado de anulado o facturado');
crearcuotas(listacliente,listacuota,listafactura,ct);
end;
[/code]
el fallo da en el procedure busquedapedido al principio del if, cuando asigna el valor listafactura^.infoFactura.cifcliente:=listacliente^.infoc.nif;
gracias a todo el que conteste¡¡
Valora esta pregunta


0