Delphi 7 I\O Error 103 на повторное открытие файла для записи

Имеется функция обработки файла, в процессе работы которой формируется временный файл. После окончания работы функции временный файл удаляется. Ошибка возникает при повторном вызове функции (без перезапуска программы). При этом повторный вызов создает файл с нулевым размером.

  function Windguru_Transfer_DB (
      InputFileName  : string;
      OutputFileName : string;
      LogMemo        : TMemo;
      ListOut    : TStringList;
      SGridOut   : TStringGrid;
      FlagSave   : Boolean) : Boolean;
    label ExitFunction;
    const DumpFileName : string = 'dump.file'; // Имя временного файла
    var   FileDump    : TextFile;   // Переменная временного файла
    // ... продолжение описания
    begin
      // ... инициализация переменных
      {$I-} // открываем на запись
      AssignFile (FileDump, DumpFileName);
      Rewrite (FileDump); // - здесь возникает ошибка при повторном вызове функции
      {$I+}
      // ... подготовка к чтению исходного файла
      while not Eof (FileIn) do
        begin
         // здесь читаем исходный файл и записываем информацию во временный файл
        end;
      {$I-} // закрываем временный файл
      CloseFile (FileDump);
      {$I+}
      // ... проверка прочтенных параметров
      Reset (FileDump); // открываем файл для чтения
      // ... читаем и обрабатываем информацию
      CloseFile (FileDump); // закрываем временный файл
      // ... передаем полученные данные 
      {$I-}
          Erase (FileDump); // удаляем временный файл
      {$I+}
    end;

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

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

Ответ оказался банальным - лишнее закрытие другого файла (конечного). В итоге оказались перекрытыми открытие как временного, так и другого исходного файла. О подобных проблемах в Интернете уже неоднократно писали, но внятного и исчерпывающего ответа я не нашел.

→ Ссылка