OberonCore https://forum.oberoncore.ru/ |
|
Ошибка в Converters.Export? https://forum.oberoncore.ru/viewtopic.php?f=23&t=6851 |
Страница 1 из 1 |
Автор: | Илья Ермаков [ Пятница, 06 Май, 2022 04:55 ] |
Заголовок сообщения: | Ошибка в Converters.Export? |
Код: 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 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |