procedure zapisz_baze(var glowa:p_wpis);
var
baza:file of t_wpis;
temp:p_wpis;
begin
  assign(baza,'baza.dat');
  rewrite(baza);
  temp:=glowa;
  repeat
    write(baza,temp^);
    temp:=temp^.nastepny;
  until temp=nil;
  close(baza);
end;

wyskakuje runtime error 'I/O error 998'
ale nic to bo procedura i tak zapisywała do pliku rekordy wraz z polami wskaznikowymi co jest nieekonomiczne
oto procedura zapisujaca rekordy bez pól wskaźnikowych:

procedure zapisz_baze(var glowa:p_wpis);
type
t_aktualny=record
  nazwisko:string[30];
  adres:string[100];
  pesel:string[11];
  rejestracja:string[10];
  waga:integer;
  ilosc_drzwi:byte;
  model:string[20];
  typ:string[20];
  data_zarejestrowania:string[10];
  czas_wjazdu:string[5];
  czas_wyjazdu:string[5];
end;
var
aktualny:t_aktualny;
baza:file of t_aktualny;
temp:p_wpis;
begin
  assign(baza,'baza.dat');
  rewrite(baza);
  temp:=glowa;
  repeat
    aktualny.nazwisko:=temp^.nazwisko;
    aktualny.adres:=temp^.adres;
    aktualny.pesel:=temp^.pesel;
    aktualny.rejestracja:=temp^.rejestracja;
    aktualny.waga:=temp^.waga;
    aktualny.ilosc_drzwi:=temp^.ilosc_drzwi;
    aktualny.model:=temp^.model;
    aktualny.typ:=temp^.typ;
    aktualny.data_zarejestrowania:=temp^.data_zarejestrowania;
    aktualny.czas_wjazdu:=temp^.czas_wjazdu;
    aktualny.czas_wyjazdu:=temp^.czas_wyjazdu;
    write(baza,aktualny);
    temp:=temp^.nastepny;
  until temp=nil;
  close(baza);
end; 

i teraz jest jeszcze śmieszniej bo nie pokazuje zadnego błędu przy uruchamianiu spod delphi a przy uruchamianiu execa pokazuje