OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 16 Апрель, 2024 21:20

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Эмуляция Array Of Const (Delphi)
СообщениеДобавлено: Четверг, 15 Июль, 2010 01:22 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Как можно сэмулировать Array Of Const на Обероне-2?

Мне нужно имитировать делфийскую функцию Format.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Эмуляция Array Of Const (Delphi)
СообщениеДобавлено: Четверг, 15 Июль, 2010 11:55 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Расскажите поподробнее про эту штуку в Дельфи, может, что и придумаем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Эмуляция Array Of Const (Delphi)
СообщениеДобавлено: Четверг, 15 Июль, 2010 12:04 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Приведу частный пример:
Код:
 WriteLn (Format('Compiled. pc=%d, dsize=%d', [compdata.pc, compdata.dsize]))

Функция формат принимает первым параметром строку и вторым - массив переменных (разного типа), которые будут вставляться в первую строку, выполняя форматирование строки. Примером может быть сишная printf.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Эмуляция Array Of Const (Delphi)
СообщениеДобавлено: Четверг, 15 Июль, 2010 12:29 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Во-первых, можно передавать VAR p: ANYREC и дальше через метапрограммирование вытаскивать поля. (Только как там в Обероне - не знаю).

Либо, более тупо, прямо и быстро - передавать VAR data: ARRAY OF BYTE и иметь библиотечку с функциями считывания записей из двоичного потока.
Как вот эти - viewtopic.php?f=2&t=2006 (Не забываем в них проверять, что записи без указателей - и имеем 100%-безопасность).
Для элементарных типов в той же библиотечке имеем предобъявленные типы вида Int = RECORD val: INTEGER END.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Эмуляция Array Of Const (Delphi)
СообщениеДобавлено: Пятница, 16 Июль, 2010 01:35 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
В компиляторе XDS появилось описывается понятие Sequence parameters:

Цитата:
Sequence parameters

Sequence parameters for a Modula-2/Oberon-2 procedure are collected into a temporary variable, which is then passed as an ARRAY OF BYTE (i.e. its address and size are passed). For foreign procedures, a C-compatible approach is used --- parameters are pushed onto the stack. In either case, all ordinal type parameters are extended to 4 bytes, REALs to LONGREALs, non-scalar type parameters are passed by reference.


Код:
SEQ args: SYSTEM.BYTE

Хм... :? Я что-то не припомню такого ключевого слова в Обероне-2.


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

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


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

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


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

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