Pascal no esa para nada atrasado, todo de pende del compilador que uses como por ejemplo el free pascal compiler, que tiene liberias para trabajar con muchas bases de datos y ademas hay aplicaciones como Lazarus que es un clon de delphi para linux basado en este compilador, en fin, lo que es obsoleto es usar un .dat para tener alguna coleccion de datos, lo ideal es usar un access, pero...... yo no soy de los que dicen "no hay que reinventar la rueda ", a mi me parece bien que se quiera trabajar con archivos de forma mas directa, como en este caso.
Para el Binario solo saca los {$I} del codigo fuente y listo.
te quedari algo asi:
var timeout:integer;
Begin
Assign(gnom,'z:\anexosg.dat');
{$I-}
timeout:=999999;
reset(gnom);
while((ioresult<>2)and(timeout<>0))Do
Begin
reset(gnom);
Dec(timeout);
End;
If (timeout<>0) then Rewrite(gnom)
else write('no se puede abrir el arhivo');
{I+};
o algo asi, tambien podrias usar la funcion delay(), la idea es esperar hasta que el archivo sea desbloqueado para luego, poder abrirlo.
saludos.