Am writeln liegt es nicht!
Es hat was damit zu tun, wie das Dokument zum zweiten mal geöffnet und zum Verarbeiten bereit gestellt wird. So würde ich das Laienhaft einschätzen
Delphi-Quellcode:
...
if count = 0 then Memo1.Lines.Add(</p>)
else
Memo1.Lines.Delete(Memo1.Lines.Count - 1);
end;
writeln(f, Memo1.Text);
Closefile(f);
Jetzt springt er auch zum writeln mit E/A 105