Страница 1 из 1

Проверка структуры файла и удаление.

Добавлено: 27 Май 2025, 12:32
gopstop2007
В программе есть временные (temp) файлы (TPS), в которых может поменяется внутренняя структура.
При входе в программу нужно проверить эти файлы, если структура отличается от структуры в справочнике в DCT (dictonary), удалить эти файлы, без сообщения об ошибке, чтобы в тихую создать новые файлы.
Проверяю на не соответствие структуры файл

Код: Выделить всё

IF pFMt_.UseFile() <> Level:Benign
   pFMt_.Close()
   Remove(pFMt_.File)
   pFMt_.Open()
END        
Выдает сообщение, что файл поврежден и вылетает с программы не выполнив дальнейших действий.
Прошу помощи, спасибо заранее.

Проверка структуры файла и удаление.

Добавлено: 27 Май 2025, 13:07
Игорь Столяров
Конечно лучше проверять структуру файлов через операторы Open() / Close(), а не методы ABC ...

Проверка структуры файла и удаление.

Добавлено: 27 Май 2025, 13:24
gopstop2007
Игорь Столяров писал(а): 27 Май 2025, 13:07 Конечно лучше проверять структуру файлов через операторы Open() / Close(), а не методы ABC ...
OPEN, не видит изменений структуры файла (, если только запись попробовать получить.

Проверка структуры файла и удаление.

Добавлено: 27 Май 2025, 13:39
Игорь Столяров
Если не ошибаюсь, в CapeSoft FileManager это делалось, что-то вроде:

Код: Выделить всё

  Open(xFile_)
  If ErrorCode() then Do GetMyFileError.
  else
     Set(xFile_)
     Next(xFile_)
     If ErrorCode() then Do GetMyFileError.
  end   
и обрабатывать ошибку по коду.

Проверка структуры файла и удаление.

Добавлено: 27 Май 2025, 16:49
kreator
Надо вызвать оператор share. И проверить код ошибки на неправильную структуру (кажется 52 ошибка).

Проверка структуры файла и удаление.

Добавлено: 27 Май 2025, 17:09
gopstop2007
Игорь Столяров писал(а): 27 Май 2025, 13:39 Если не ошибаюсь, в CapeSoft FileManager это делалось, что-то вроде:

Код: Выделить всё

  Open(xFile_)
  If ErrorCode() then Do GetMyFileError.
  else
     Set(xFile_)
     Next(xFile_)
     If ErrorCode() then Do GetMyFileError.
  end   
и обрабатывать ошибку по коду.
Пробовал, при дальнейшей работе начинает ругаться на не открытые файлы, хотя ошибок до этого не наблюдалось (
kreator писал(а): 27 Май 2025, 16:49 Надо вызвать оператор share. И проверить код ошибки на неправильную структуру (кажется 52 ошибка).
Спасибо, то что надо, только код ошибки 47.