RDM/2 The Russian Electronic Developer Magazine  
RDM/2 Русский электронный журнал разработчика  
ДомойОт редактораПишите намОбратная связьRU/2

Object REXX. Новые функции в RexxUtil.

В очередной раз пробуя SysNationalLanguageCompare, снова обнаружил, что она работает неправильно даже после того, как я "пропатчил" COLLATE-последовательность для России в COUNTRY.SYS.

Решил написать о баге разработчикам, а заодно и спросить, почему не документированы новые функции RexxUtil. Русскому опять ;) не повезло, но описание новых функциий выслали.

Системные функции

SysDumpVariables
выводит в указанный файл или на стандартный вывод имена и значения переменных из текущей области видимости (scope).
result = SysDumpVariables([файл])
Формат вывода: Name=Имя, Value="Значение переменной Имя"
Возврат:       0 - нет ошибок
              -1 - ошибки.
SysGetFileDateTime
возвращает дату/время создания/записи обращения файла.
result = SysGetFileDateTime(Имя,[СЕЛЕКТОР])
Возврат: -1 - ошибка, иначе yyyy-mm-dd hh:mm:ss
Необязательный СЕЛЕКТОР может быть Create/Access/Write. Файл должен быть закрыт или открыт в разделяемом режиме с разрешением хотя бы записи.

SysSetFileDateTime
устанавливает дату/время последней записи файла.
result = SysSetFileDateTime(Имя[,Дата][,Время])
Если не указаны дата и/или время - берутся их текущие значения. Файл должен быть закрыт или открыт в разделяемом режиме с разрешением хотя бы записи.
Эти функции возвращают временные отметки в формате: yyyy-mm-dd hh:mm:ss
Для OS/2 и WindowsNT могут возращать информацию не только для
файлов, но и для каталогов, *nix и Win9x - только файлы.
SysVersion
возвращает наименование и версию операционной системы. Сегодня существуют версии ObjectREXX для OS/2, Windows, AIX и Linux. Для Windows только за деньги;)
result = SysVersion()
Возможные возвраты: OS/2 2.40
                    WindowsNT 4.00
                    AIX 4.2
                    Linux 2.0.34
SysUtilVersion
возвращает версию самой библиотеки RexxUtil.
result = SysUtilVersion()
Возврат: Номер версии в формате: n.mm (сейчас 2.0)

Функции манипулирования с кортежами переменных (stem)

SysStemCopy
копирует заданное число элементов, начиная с заданного индекса источника в заданный индекс приемника; опционально делает вставку.
result = SysStemCopy(Откуда,Куда[,ИзПоз.][,ВПоз.][,Счетчик][,Вставка])
Возврат: 0 - нет ошибок
        -1 - ошибка копирования.
Копирует Счетчик элементов с индекса ИзПоз. кортежа Откуда в индекс ВПоз. кортежа Куда.
Если флаг Вставка 'I' - элементы вставляются, если 'O' - замещают элементы получателя.
Умалчиваемые значения позиций - 1 (из начала в начало), счетчика - все элементы источника, флага - замещение ('O').

SysStemDelete
уничтожает заданное число элементов, начиная с указанной позиции.
result = SysStemDelete(Кортеж,Индекс[,Счетчик])
Возврат: 0 - нет ошибок
        -1 - ошибка удаления.
Удаляет из кортежа Счетчик элементов, начимая с позиции Индекс. Значение по умолчанию для счетчика - один элемент. Кортеж "сжимается", т.е. элементы после удаленного перенумеруются.

SysStemInsert
вставляет заданное значение как элемент с заданным индексом.
result = SysStemInsert(Кортеж,Индекс,Значение)
Возврат: 0 - нет ошибок
        -1 - ошибка вставки.
Вставляет в позицию Индекс новый элемент. Кортеж "расширяется", т.е. элементы после вставленоого перенуменуются.

SysStemSort
сортирует весь кортеж или его часть.
result = SysStemSort(Кортеж,Порядок,Тип,НачПоз,КонПоз,НачКол,КонКол)
Элементы Кортеж сортируются в Порядок ('A' - по возрастанию, 'D' - по убыванию, по умолчанию - 'A'), начиная с элемента в НачПоз (по умолчанию 1) и заканчивая элементом в КонПоз (по умолчанию - индекс последнего элемента).
Для сравнения используются символы от НачКол (по умолчанию 1) до КонКол (по умолчанию последняя колонка строки).
Тип сравнения может быть 'C' - учет регистра или 'I' - без учета регистра (по умолчанию - 'C').
Используется алгоритм быстрой сортировки и порядок элементов с равными ключами не гарантирован.
Все SysStemXXXX функции работают только с кортежами вида:
  stem.0=n          - общее число элементов
  stem.1 ... stem.n - одномерный массив.

Примечание: Проверка показала, что источник и получатель
            могут быть одной и той же переменной.

Василий Сидоров.
P.S. Прилагаю то описание, которое прислали мне. Ну и само собой замечания и пожелания (if any;)

P.P.S. ObjectRexx для Warp3 теперь доступен для загрузки без регистрации: objrxx30.zip

Чтобы использовать новые функции в других версиях рекса, надо заменить RexxUtil.dll и RexxCRT.dll на файлы из этого архива.

Отдельный интерес может представлять RexxPG.inf, в котором описаны функции и обработчики RexxAPI.

---
Интересные ссылки:

---

---
Комментариев к странице: 0 | Добавить комментарий
---
Редактор: Дмитрий Бан
Оформление: Евгений Кулешов
(C) Russian Underground/2