Wenn du es mit TextFile machen willst, musst du wohl oder übel etwas Performance dafür opfern.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const MB2B = 1024*1024; //MBytes nach Bytes
BufSize = 1024; //Buffergröße in Bytes
var Buf: String[1024]; //Buffer
Size: Int64; //MBytes
T: TextFile; //TextFile
i, j: Integer; //Zähler
begin
Size:=StrToFloat(JvEdit1.Text);
Buf:=''; //auf 0
Bar.Max:=Size; //Progressbar Init
Bar.Step:=1;
If SaveDialog1.Execute then
begin
assignfile(t,SaveDialog1.FileName); //FileInit
rewrite(t);
for i:=1 to Size do //Für jedes MB
begin
for j:=1 to MB2B div BufSize do //solange Buffer bis MB voll
writeln(t,Buf); //Buffer schreiben
Bar.StepIt; //Progressbar Weitermachen und Neu malen
Bar.Refresh;
end;
closefile(t); //Datei schliessen
end;
end;
eleganter ist es aber in jedem Fall mit einem Stream...