OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 15 Ноябрь, 2019 00:44

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: i21sysIn
СообщениеДобавлено: Пятница, 17 Апрель, 2015 17:13 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4525
Откуда: Россия, Орёл
Код:
   PROCEDURE Name* ( OUT name: ARRAY OF CHAR );
   BEGIN
      IF  done  THEN
         scanner.Scan;
         TextMappers.ScanQualIdent( scanner, name, Done )     <--- должна быть done вместо Done
      END;
      Done := done
   END Name;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: i21sysIn
СообщениеДобавлено: Пятница, 24 Апрель, 2015 00:28 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4525
Откуда: Россия, Орёл
Цитата:
VAR done-
Значение этой переменная показывает, была ли успешной последняя операция ввода из числа процедур, определенных в этом модуле. Значение done устанавливается в TRUE при успешном вызове Open или Restart, и устанавливается в FALSE первой неуспешной операции ввода. Однажды установленная в FALSE, она сохраняет это значение до следующего вызова Open или Restart.
NB Прямые обращения к методам сканера scanner не влияют на значение done. Поэтому для чтения потока ввода нужно либо использовать исключительно scanner, либо не использовать его вообще.

VAR scanner
Объект, выполняющий работу по сканированию потока ввода.
Подсоединяется к копии вводимого текста при выполнении процедуры Open (см. правила определения вводимого текста в описании процедуры Open).
Использовать scanner следует лишь в тех случаях, когда требуется детальный (посимвольный) анализ структуры вводимых данных, например, когда структура вводимых данных неизвестна или слишком сложна.
Если же структура вводимых данных известна и достаточно проста, то следует избегать обращений к scanner напрямую и по возможности использовать процедуры, определенные в данном модуле.
Приходится сталкиваться с ситуацией, когда структура вводимых данных проста и схема In.A(a); In.B(b); ...; ASSERT(In.done) устраивает, но местами требуются процедуры ввода данных специфического типа, которых в In нету. Эта проблема решалась бы дописыванием доп. процедур ввода, следующих логике In.done, если бы они имели возможность In.done менять (нужен полный экспорт вместо "на чтение").

Откуда возникают вопросы. Логично ли с т.з. расширямости такое радикальное установление? Имеются ли соображения другого плана, которые перевешивают в пользу In.done только на чтение?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: i21sysIn
СообщениеДобавлено: Пятница, 24 Апрель, 2015 21:56 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8196
Откуда: Троицк, Москва
Для специфических приложений нужно просто брать TextMappers.Scanner

i21sysIn -- i21sysIn -- это всего лишь одно такое приложение: уточнение старого модуля In.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: i21sysIn
СообщениеДобавлено: Пятница, 24 Апрель, 2015 23:11 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4525
Откуда: Россия, Орёл
Таким общим ответом --- одно специфическое приложение естественным образом сосуществует со вторым, из него полученным, поскольку за стандартной библиотекой погони нет --- исходный специфический вопрос низводится до величины, которой можно пренебречь. И с первым, и со-вторым, не могу не согласиться. :)


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

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


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

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


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

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