次のコンソールアプリケーションは、TStringList.SaveToFileを使用して、テキストファイルに複数行を書き込みます。
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
System.Classes;
var
i: Integer;
a,b,c: Single;
myString : String;
myStringList : TStringList;
begin
try
Randomize;
myStringList := TStringList.Create;
for i := 0 to 1000000 do
begin
a := Random;
b := Random;
c := Random;
myString := FloatToStr(a) + Char(9) + FloatToStr(b) + Char(9) + FloatToStr(c);
myStringList.Add(myString);
end;
myStringList.SaveToFile('Output.txt');
myStringList.Free;
WriteLn('Done');
Sleep(10000);
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
1000001行の50MBを超えるファイルを書き込むには、約3秒かかり、正常に機能しているようです。ただし、多くの人がそのようなプロセスにストリームを使用することを提唱しています。ストリームと同等のものは何であり、TStringList.SaveToFileと比較してそれを使用することの長所/短所は何ですか?