Aqui esta en codigo, lo compile en Turbo Pascal 7 de Borland :
Program archivo;
uses
Crt,dos;
type
arreg_palab = array[1..30] of string;
struct_palabra = record
pal:string;
end;
Var
arch_pal : file of struct_palabra;
palab:struct_palabra;
arch:text;
palabra:string;
op:integer;
cont,num_rand:integer;
cont:=0;
begin
assign(arch_pal, 'a:archiv.dat');
{$i-};
reset(arch_pal);
{$i+};
if ioresult<>0 then
begin
rewrite(arch_pal);
end;
while not eof(arch_pal) do
begin
read(arch_pal,palab);
cont:=cont+1;
with palab do
begin
writeln (pal);
arreg_palab[cont]:=pal;{Aqui es donde se pone el error

end;
end;
end.
Saludos

P.D.
Si me pase en algun Begin o end no le presten atencion