Оберон-клуб «ВЄДАsoft» https://zx.oberon.org/forum/ |
|
Ввод/вывод https://zx.oberon.org/forum/viewtopic.php?f=79&t=145 |
Страница 1 из 1 |
Автор: | Len [ 14 ноя 2013, 14:59 ] |
Заголовок сообщения: | Ввод/вывод |
В языке нет встроенных операторов ввода/вывода, как например, в Basic`е оператор print. Как быть? |
Автор: | Saferoll [ 14 ноя 2013, 16:51 ] |
Заголовок сообщения: | Re: Ввод/вывод |
Len писал(а): В языке нет встроенных операторов ввода/вывода, как например, в Basic`е оператор print. Как быть? Если нет чего-то встроенного, то нужно подключить модуль, в котором это есть. Так для простейшего вывода (для изучения языка или отладки), можно использовать модуль StdLog, входящий во все сборки BlackBox. Вот пример (из набора примеров, который тоже стандартно входит во все сборки): Код: "OBERON"
|
Автор: | Zorko [ 14 ноя 2013, 21:56 ] |
Заголовок сообщения: | Re: Ввод/вывод |
Len писал(а): В языке нет встроенных операторов ввода/вывода, как например, в Basic`е оператор print. Как быть? Всё правильно. А знаете почему в Оберон не введены операции ввода-вывода на уровне языка? Да чтобы не привязывать язык, например, к консольному вводу-выводу. Вместо этого Оберон — эдакая вещь в себе, и рассматривает ввод-вывод как нечто относящееся к уровню взаимодействия с внешней средой, т.е. то, что может быть решено средствами языка, например, отдельными модулями или биндингами к платформе/ОС. Согласитесь, что это плохо, когда ввод-вывод намертво привязан к 16-цветной консоли с разрешением 80x25 символов, и такая пристройка в виде консоли рассматривается как неотъемлемая часть языка, как это было в Turbo Pascal. Это то, что касается теории "зачем сделано именно так, а не иначе".Как же практически достичь ввода-вывода? Saferoll уже ответил насчёт BlackBox. Добавлю, что существует модуль консольного вывода для Windows. "Дубовые требования" стандартизируют процесс ввода-вывода, но они поддержаны далеко не всеми реализациями Оберона. Когда-то Руслан Богатырёв хотел разработать стандартные библиотеки ввода/вывода для основных реализаций Оберона/Компонентного Паскаля, но дело вроде бы далее идеи не сдвинулось. Так что каждая реализация решает этот вопрос по-разному. Мартин Райзер в своей книге "Programming in Oberon" предлагает такой интерфейс для вывода: Код: "OBERON"
Код: "OBERON"
Так что с вводом-выводом в Оберонах дела обстоят немного сложнее, чем хотелось бы. Просто ввод-вывод — он ведь разный бывает. И в графическое окно. И юникодный. И поверх рисунков, с прозрачностью. И векторными шрифтами. Так что пусть лёгкость вывода PRINT'ом в Basic'е Вас не обманывает. Всё равно люди вынуждены выйти за рамки возможностей PRINT (см., например, развитие Basic'а — язык программирования Monkey). |
Автор: | qrx [ 01 май 2016, 07:10 ] |
Заголовок сообщения: | Re: Ввод/вывод |
Пожалуйста, подскажите. Как в Log выводить строковую константу? Например: Код: "OBERON"
Плохо получается, если использовать Код: "OBERON"
|
Автор: | Saferoll [ 02 май 2016, 12:56 ] |
Заголовок сообщения: | Re: Ввод/вывод |
А что именно плохо? Может быть перехода на новую строку StdLog.Ln не хватает? Переделал пример из ББ: Код: "OBERON"
Всё хорошо выводит. |
Страница 1 из 1 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |