Deine Datei hat doch auch nur so viel Zeilen
for j:=3 to Form1.zwischenspeicher.Lines.Count do
Count (von egal was) gibt an, wieviel drinsteckt. Angefangen zu zählen wird bei Null.
Wenn in irgendetwas drei Dinge stecken und machst etwas von den Dingen an Position Null bis inklusive drei. Dann sind das schon vier.
Also:
for j:=3 to (Form1.zwischenspeicher.Lines.Count-1) do
Außerdem habe ich grade voll den crazy Gedankengang: Möchtest du vielleicht einmal
FreePascal in dein Profil eintragen?