У меня есть программа, которая записывает вывод, когда он завершен, а конкретный файл занимает очень много времени, и мне было интересно, могу ли я что-нибудь сделать, чтобы улучшить его скорость.
Размер этого файла составляет 25 Мбайт или больше. в нем около 17000 строк, каждая из которых имеет около 500 полей
. Принцип его работы следующий:
procedure CWaitList.WriteData(AFile : string; AReplicat : integer; AllFields : Boolean);
var
fout : TextFile;
idx, ndx : integer;
MyPat : CPatientItem;
begin
ndx := FList.Count - 1;
AssignFile(fout, AFile);
Append(fout);
for idx := 0 to ndx do
begin
MyPat := CPatientItem(FList.Objects[idx]);
if not Assigned(MyPat) then Continue;
MyPat.WriteItem(fout, AReplicat, AllFields);
end;
CloseFile(fout);
end;
WriteItem - это процедура, которая получает все значения из MyPat и записывает их в файл, а также вызывает 3 другие функции, которые также записывать значения в файл
, так что в целом цикл WriteData составляет около 1700, а каждая строка имеет около 500 полей
. Мне просто интересно, могу ли я что-нибудь сделать, чтобы улучшить его производительность, или это всегда займет много времени из-за того, сколько данных он должен записать
спасибо