Access denied при частом открытии файла
Добавлено: 03.11.2008 17:40:50
Есть у нас в конторе программа (написанная не мной), которая читает текстовые файлы определенного формата, извлекает из них информацию, и после форматирования пишет ее в результирующий файл. Вот фрагмент кода:
При большом количестве исходных файлов (4000 и больше), ближе к концу списка начинает возникать ошибка "Access denied" на строке Append(OutFile). Файл-результат больше нигде не используется, после записи каждой порции данных закрывается. Пробовал вынести открытие и закрытие результирующего файла за пределы цикла (чтобы не открывать файл при записи новой порции данных) - не помогло.
В чем может быть проблема и как лучше организовать процесс записи (пишутся строки разной длины)?
- Код: Выделить всё
// просматриваем исходные файлы
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). Файл-результат больше нигде не используется, после записи каждой порции данных закрывается. Пробовал вынести открытие и закрытие результирующего файла за пределы цикла (чтобы не открывать файл при записи новой порции данных) - не помогло.
В чем может быть проблема и как лучше организовать процесс записи (пишутся строки разной длины)?