TFileStream hab' ich zuerst ausprobiert, war auf meinem Rechner deutlich langsamer (vorausgesetzt, dass ich es vernünftig gemacht haben sollte).
Man muss ja dann im Stream immer nach dem Zeilenumbruch suche und, wenn gefunden, die Ausgabedatei wechseln.
Sowas in der Art?
Delphi-Quellcode:
var
output : Array[0..3] of TFileStream;
input : TFileStream;
i : Integer;
ch : Char;
begin
input := TFileStream.Create(ParamStr(1),fmOpenRead);
for i := 0 to 3 do begin
output[i] := TFileStream.Create(ExtractFilePath(ParamStr(0)) + 'Test_' + IntToStr(i) + '.txt',fmCreate);
end;
i := 0;
input.Position := 0;
input.Read(ch,1);
repeat
output[i].Write(ch,1);
case ch of
#10 : begin
i := i + 1;
if i > 3 then i := 0;
end;
end;
until input.Read(ch, 1) = 0;
for i := 0 to 3 do output[i].Free;
input.Free;
end.