- Код: Выделить всё
// просматриваем исходные файлы
for i:=0 to lstFiles.Lines.Count - 1 do
begin
//сначала считывается и обрабатывается исх. файл
lstSource.LoadFromFile(lstFiles.Lines[i]);
...
//результат обработки пишем в результирующий файл
AssignFile(OutFile, OutFileName);
try
Append(OutFile);
//запись информации
write(OutFile, CadNom + SEPARATOR);
write(OutFile, Owner + SEPARATOR);
...
writeln(OutFile, ActRegDate); //формируем переход на след. строку
CloseFile(OutFile);
except
on E:EInOutError do
DebugLn('Error: ' + E.Message);
end;
end;
При большом количестве исходных файлов (4000 и больше), ближе к концу списка начинает возникать ошибка "Access denied" на строке Append(OutFile). Файл-результат больше нигде не используется, после записи каждой порции данных закрывается. Пробовал вынести открытие и закрытие результирующего файла за пределы цикла (чтобы не открывать файл при записи новой порции данных) - не помогло.
В чем может быть проблема и как лучше организовать процесс записи (пишутся строки разной длины)?