Как можно ускорить алгоритм?

Не устраивает только одно - скорость работы алгоритма, как можно ускорить алгоритм в этом коде (Может из за того что использую AssignFile ?).:

Может использовать TStreamReader (но с ним работать не пробовала) или другой метод. Кто что подскажет?

procedure TForm1.BitBtn3Click(Sender: TObject);
var
  F1, F2: TextFile;
  S, Name: String;
  k1, k2: string;
  z, m: integer;
begin

  // Открываем диалог
  if OpenDialog1.Execute then
  begin
    // Открываем файл
    AssignFile(F1, OpenDialog1.FileName);
    Reset(F1);
    While not EOF(F1) do
    Begin
      // Читаем
      Readln(F1, S);
      // Переменные
      z := Pos('+', S) or Pos('-', S);
      m := Pos('№', S);
      // Формируем имя каждого файла
      Name := Copy(S, m, z - m) + '.txt';
      // Открываем файл
      AssignFile(F2, Name);
      IF FileExists(Name) then
        Append(F2)
      else
        Rewrite(F2);
      // Запись
      Writeln(F2, S);
      // Закрываем файл
      CloseFile(F2);

    End;
    // Закрываем файл
    CloseFile(F1);
  end;
end;

Ответы (1 шт):

Автор решения: MBo

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

А вот нужны ли Вам эти однострочные файлы в большом (судя по тревоге о быстродействии) количестве - это вопрос...

→ Ссылка