|
Bueno aca te mando el codigo me da un error en la line 113 no se porque si puedes ayudarme te lo agradeceria ya que es mi trabajo final para poder aprobar la materia y como me a costado
gracias.
Program control_empleados;
Uses Crt,Dos,Printer;
Type
Cadena=string;
Empresa=Record
Nombre:string[40];
Sucursal:Integer;
Departamento:Integer;
Almacen:Integer;
Sueldo:Integer;
DelimitadorReg:boolean;
End;
Fichero=File of Empresa;
Var
Archivo:Fichero;
opcion:char;
desactivarcontrol:boolean;
(**************************************************************************)
procedure pulsarunatecla;
var
car:char;
begin
gotoxy(25,23);
write('Pulse una tecla cuando este listo...');
car:=UpCase(ReadKey);
ClrScr;
end;
(*************************************************************)
procedure activar(var f:Fichero);
var
resultado:integer;
begin
ClrScr;
(*$i-*)
Reset(f);
Resultado:=ioresult;
if resultado <> 0 then
rewrite(f);
close(f);
end;
(****************************************************************************)
procedure leerRegistro(var e:empresa);
var beta,alfa:integer;
cad:string;
begin
with e do
begin
gotoxy(20,15);write('Nombre: ');
Readln(nombre);
gotoxy(20,16);write('Sucursal: ');
Readln(sucursal);
gotoxy(20,17);write('Departamento: ');
Readln(departamento);
gotoxy(20,18);write('Almacen: ');
Readln(almacen);
gotoxy(20,19);write('Sueldo: ');
Readln(sueldo);
Pulsarunatecla;
end;
(*********************************************************************)
procedure listadototal(var f:Fichero);
var
e:empresa;
sucaux,subtotalsuc,depaux,subtotaldep,subtotalalm,almaux,totalgeneral:integer;
Begin
reseat(f);
eof="no"
do repeat until eof="si" or sucursal<>sucaux
depaux:=departamento
subtotaldep=0
do repeat until eof=si or sucursal<>sucaux or depaux<>departamento
subtotalalm=0
almaux=almacen
do repeat until eof=si or sucursal<>sucaux or depaux<>departamento or almaux<>almacen
write "Nombre Empleado" nombre;
write "Sueldo" sueldo;
subtotalalm:=subtotalalm+sueldo
read(f)
end;
write "almacen" almaux;
write "subtotal almacen" subtotalalm;
subtotaldep:=subtotaldep+subtotalalm;
end;
write "departamento" depaux;
write "subtotal departamento" subtotaldep;
subtotalsuc:=subtotalsuc+subtotaldep;
end;
write "Sucursal" sucaux;
write "subtotal sucursal" subtotalsuc;
totalgeneral:=totalgeneral+subtotalsuc
end;
write "totalgeneral:" totalgeneral;
end;
close(f);
End;
(********************************************)
procedure ampliar(var f:fichero);
var
r,e:empresa;
i:integer; (*posicion del registro en el archivo*)
opcion:char;
begin
clrscr;
gotoxy(25,2);
write('ESTAS EN LA OPCION DE "ALTAS"');
reset(f);
gotoxy(25,4);
write('Pulse cualquier tecla excepto - n ¢ N -');
while Upcase(ReadKey) <> 'N' do
begin
gotoxy(20,13);
write('Introduzca Datos del Nuevo Usuario: ');
LeerRegistro(e);
i:=posicion(e.nombre,f);
if i=-1 then
begin
i:=filesize(f);
seek(f,i);
write(f,e);
end
else
begin
seek(f,i);
read(f,r);
if r.DelimitadorReg then
begin
gotoxy(20,21);
write('El Elemento ya Existe');
sound(450);
delay(500);
nosound;
end
else
write(f,e);
end;
gotoxy(20,21);
write('Pulse - n ¢ N - si quiere Salir de Altas');
end;
close(f);
End;
(********************************************)
procedure menu(var f:fichero);
var
opcion:char;
begin
repeat
clrscr;
gotoxy(23,2);write('Menu Principal');
gotoxy(20,4);write('1.- Altas.');
gotoxy(20,6);write('2.- Listado total.');
gotoxy(20,8);write('3.- Salir');
repeat
opcion:=UpCase(ReadKey);
until opcion In ['1'..'3',#27];
clrscr;
Case opcion of
'1': Ampliar(f);
'2': ListadoTotal(f);
End; (*End del Case*);
Until (opcion='3') or (opcion=#27);
close(f);
textcolor(white);
textbackground(black);
Normvideo;
end;
(****************************************************************************)
(* Programa Principal *)
(****************************************************************************)
Begin
Clrscr;
textcolor(white);
textbackground(black);
desactivarcontrol:=false;
checkbreak:=desactivarcontrol;
setcbreak(desactivarcontrol);
Assign(archivo,'agenda.dat');
Activar(archivo);
Menu(archivo);
textcolor(white);
textbackground(black);
Normvideo;
clrscr;
End.
|