OberonCore
https://forum.oberoncore.ru/

Как открыть view из файла и записать в текст?
https://forum.oberoncore.ru/viewtopic.php?f=23&t=253
Страница 1 из 1

Автор:  Cardinal [ Вторник, 20 Июнь, 2006 16:24 ]
Заголовок сообщения:  Как открыть view из файла и записать в текст?

Открываю свою view из файла:
Код:
   PROCEDURE LoadFromFile*(name: Files.Name; OUT view: Views.View);
      VAR loc: Files.Locator;  conv: Converters.Converter;
   BEGIN
      loc := Files.dir.This( name );
      view := Views.Old( Views.dontAsk, loc, name, conv);
   END LoadFromFile;   

Пишу в текстовую модель formatter.WriteView(view).
Возникает трап: view.context должно быть NIL.
Вопрос: как открыть view из файла и записать в текст?

Автор:  Илья Ермаков [ Вторник, 20 Июнь, 2006 18:53 ]
Заголовок сообщения: 

Дело в том, что открытый View уже является собственностью некоторого документа Documents.Document, который был открыт из файла. И вставить второй раз в другую модель нельзя. Нужно сделать копию:
formatter.WriteView(Views.CopyOf(view, FALSE)).

Автор:  Cardinal [ Воскресенье, 25 Июнь, 2006 19:04 ]
Заголовок сообщения: 

Спасибо.

Автор:  Сергей Губанов [ Воскресенье, 25 Июнь, 2006 22:48 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
Дело в том, что открытый View уже является собственностью некоторого документа ... Нужно сделать копию


Может его просто не открывать в документ?

Просто считать самому с помощью rd: Stores.Reader.

VAR s: Stores.Store;

rd.ConnectTo(file);
rd.ReadStore(s);
view := s(Views.View);

Автор:  Илья Ермаков [ Понедельник, 26 Июнь, 2006 12:14 ]
Заголовок сообщения: 

Дело в том, что формат ODC предполагает, что корневым View в файле является именно Documents.Document. Так что Ваш код считает его.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/