Moin, Moin,
mir scheint, dass da einiges wirre durcheinandergewürfelt wird. Mit
Reset(f,1)
öffnest du die Datei und bestimmst eine Blockgröße von EINEM Byte.
Infolge deiner Inkrementierung von i liest du in den Schleifen eine variable Menge von Bytes: Im ersten Durchgang 1x1=1 Byte im zweiten Durchlauf 2x1=2 Byte, im Dritten 3x1=3 Byte ... so kommt es dann dazu, dass versucht wird, über das Dateiende hinaus zu lesen...
Schau dir doch mal genauer die Befehlssyntax an