Neverím, že ti uloží správne údaje (teraz ti to ukladá hodnotu smerníka), pretože ti tam chýba znak ^ v riadku:
write(f,pom^);
Toto som napísal len na rýchlo. Takýmto spôsobom uložíš obsah celej premennej aj s odkazom na ďalší prvok, ktorý je v uloženom súbore zbytočný. Malo by to teda vyzerať takto:write(f,pom^.meno);
No a k čítaniu: Keď máš ukladanie takéto (aj tu vidím chyby): rewrite(f); {opravil som reset na rewrite}
pom:=zac;
while pom<> nil do
begin
writeln(pom^.meno);
write(f,pom^.meno); {opravil som to tak, ako som spomenul vyssie}
pom:=pom^.dalsi;
end;
close(f);
Tak čítanie je presný opak: reset(f); {citame, takze reset}
new(zac);
pom:=zac;
if not eof(f) then {ochrana proti prazdnemu suboru)
repeat {cyklus s podmienkou na konci, while tu nie je vhodne}
if pom <> zac then {ak nie sme na zaciatku, tak vytvorit nove pamatatove miesto}
begin
new{pom^.dalsi);
pom:=pom^.dalsi;
end;
read(f,pom^.meno); {nacitat}
writeln(pom^.meno);
until not eof(f); {toto opakukovat do konca suboru}
close(f);