Uses CRT;
const fname='datos1.dat';
      resp='respaldo.dat';
type persona = Record
     nombre: string[10];
     edad: integer;
End;
var f,r: file of persona;
    k: char;
    p,pa: persona;
function ExistF(fn: string):boolean;
var f: file;
Begin
     {$I-}
     assign(f,fn);
     reset(f);
     close(f);
     {$I+}
     ExistF:= (IOResult=0) and (fn<>'');
End;
procedure menu;
Begin
     clrscr;
     gotoxy(2,2);write('MENU:');
     gotoxy(3,4);write('[1] >> Agregar');
     gotoxy(3,5);write('[2] >> Imprimir');
     gotoxy(3,6);write('[ESC] >> Salir');
     gotoxy(2,8);write('Opcion: ');
     k:=readkey;
End;
procedure Agregar;
Begin
     clrscr;
     gotoxy(2,2);write('AGREGAR DATOS');
     gotoxy(2,4);write('Nombre: ');
     read(p.nombre);
     gotoxy(2,5);write('Edad: ');
     read(p.edad);
     reset(f);
     rewrite(r);
     while not eof(f) do
     Begin
          read(f,pa);
          write(r,pa);
     End;
     close(f);
     write(r,p);
     close(r);
     rewrite(f);
     reset(r);
     while not eof(r) do
     Begin
          read(r,pa);
          write(f,pa);
     End;
     close(f);
     close(r);
End;
procedure Imprimir;
Begin
     clrscr;
     reset(f);
     while not eof(f) do
     Begin
          read(f,p);
          writeln(p.nombre:15,p.edad:5);
     End;
     writeln('<Fin de Arvhico...>');
     readkey;
     close(f);
End;
 
Begin
     assign(f,fname);
     assign(r,resp);
     if not existf(fname) then
     Begin
          rewrite(f);
          close(f);
     End;
     while k<>#27 do
     Begin
          menu;
          if k='1' then agregar;
          if k='2' then imprimir;
     End;
End.