Ich würde ähnlich wie mein Vorredner, entweder eine Klasse außenrum packen oder eine von TFile-/TMemoryStream ableiten.
Im übrigen würde ich wie bereits erwähnt, immer nur den Teil lesen, den du brauchst.
Leite doch einfach ein TFileStream ab, ändere die Methode Read so, dass du via inherited ein Byte liest und dann einen String mit 8 Stellen zurückgibst ...
(Nicht getestet
Delphi-Quellcode:
function read(var Buffer : String, byteCount : Integer) : Integer; //als overload deklarieren
var
i, Buf, count : byte;
begin
result := 0;
Buffer := 0;
repeat
count := read(buf, 1)
if count = 1 then
begin
inc(result);
i := 1;
while buf <> 0 do
begin
if odd(buf) then
Buffer := Buffer+'1'
else Buffer := Buffer+'0';
inc(i);
buf:= buf shr 1;
end;
while i <= 8 do
begin
Buffer := Buffer+'0';
inc(i);
end;
end
else break; //ausstiegsvariante 1 : wir sind am ende des streams
until result = byteCount; //variante 2 : wir haben gelesen was zu lesen ist
end;
mfG
Markus