mit folgendem Source kannst du eine bestimmte Zeile aus einem Stream lesen (ab Stream Position)
Delphi-Quellcode:
function GetLine(AStream: TStream; ALineNumber: Integer): String;
var LBuffer2, LBuffer: String;
LCurrLine, LBytes, LBreakPos: Integer;
begin
result := '';
SetLength(LBuffer2, 50);
LCurrLine := 0;
while (LCurrLine <= ALineNumber) and (AStream.Position < AStream.Size) do
begin
LBytes := AStream.Read(LBuffer2[1], 50);
LBuffer := copy(LBuffer2, 1, LBytes);
repeat
LBreakPos := Pos(#13#10, LBuffer);
if LCurrLine = ALineNumber then
begin
if LBreakPos > 0 then
result := result + copy(LBuffer, 1, LBreakPos - 1)
else
result := result + LBuffer;
end;
if LBreakPos > 0 then
begin
LBuffer := copy(LBuffer, LBreakPos + 2, 50);
inc(LCurrLine);
end;
until (LBreakPos < 1) or (ALineNumber < LCurrLine);
end;
end;
geht bestimmt noch eleganter aber als Anregung sollte es reichen.