Как можно ускорить алгоритм?
Не устраивает только одно - скорость работы алгоритма, как можно ускорить алгоритм в этом коде (Может из за того что использую 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
→ Ссылка
Вы создаёте кучу однострочных текстовых файлов. Метод доступа к файлам тут роли не играет, т.к. всё ограничено файловыми операциями нахождения-создания-закрытия файла, а они существенно отличаться не будут.
А вот нужны ли Вам эти однострочные файлы в большом (судя по тревоге о быстродействии) количестве - это вопрос...