повышение скорости записи в файл

У меня есть программа, которая записывает вывод, когда он завершен, а конкретный файл занимает очень много времени, и мне было интересно, могу ли я что-нибудь сделать, чтобы улучшить его скорость.

Размер этого файла составляет 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 полей

. Мне просто интересно, могу ли я что-нибудь сделать, чтобы улучшить его производительность, или это всегда займет много времени из-за того, сколько данных он должен записать

спасибо

11
задан KingKong 24 May 2011 в 16:16
поделиться