si no es un fichero ordenado, puede intercambiar el registro a borrar por el último y truncar el fichero.
Código Delphi
[-]
procedure BorrarPosicion(N:integer);
Var
f:file of TipoDelFichero;
temp:TipoDelFichero;
begin
seek(F,UltimaPosicion);
Read(F,Temp);
seek(F,N);
Write(F,Temp);
seek(f,UltimaPosicion);
truncate(F);
end;