OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 05:24

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Ошибка в Converters.Export?
СообщениеДобавлено: Пятница, 06 Май, 2022 04:55 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Код:
   PROCEDURE Export* (loc: Files.Locator; name: Files.Name; conv: Converter; s: Stores.Store);
      VAR res: INTEGER; file: Files.File; val: ExpVal; ok: BOOLEAN;
   BEGIN
      ASSERT(s # NIL, 20); ASSERT(~(s IS Stores.Alien), 21);
      ASSERT(loc # NIL, 22); ASSERT(name # "", 23);
      file := Files.dir.New(loc, Files.ask); (* fileLoc := loc; *)
      IF file # NIL THEN
         IF conv = NIL THEN
            conv := doc
         ELSE ASSERT(conv.exp # "", 24)
         END;
         GetCommand(conv.exp, val, ok);
         IF ok THEN
            val.p(s, file);
            IF loc.res # canceled THEN
               file.Register(name, conv.fileType, Files.ask, res); loc.res := res
            END
         ELSE Dialog.ShowMsg("#System:ConverterFailed"); loc.res := canceled
         END
      END
   END Export;


См. строку: IF loc.res # canceled THEN
loc.res выставляется выше, после Files.dir.New.
А здесь вызов конвертера для записи в файл вызывается до этого IF (правда, он выше под охраной file # NIL).

Это может, правда, иметь смысл, только если New в случае loc.res = canceled (пользователь не подтвердил создание нового каталога) таки возвращает файл. Тогда мы в него выполнили экспорт, но реально Register не делаем.
Но в текущей реализации HostFiles - нет, там при canceled New возвращает NIL.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB