Язык процедур 2-REXX для OS-2


ARG


Функция ARG возвращает процедуре или внутренней программе строку аргументов или информацию о строках аргументов.

Если Вы не указываете параметр, то в качестве результата будет возвращено количество аргументов, переданных процедуре или внутренней программе.

Если Вы укажете только n, то в качестве результата будет возвращена строка аргументов с порядковым номером n. При отсутствии строки аргументов в качестве результата возвращается пустая строка. Значение n должно быть целым положительным числом.

Если указан режим, то функция ARG проверяет наличие строки аргументов с порядковым номером n. Действительными режимами для функции ARG (при указании которых имеют значение только начальные буквы, остальные игнорируются) являются следующие:

Exists    Возвращает результат 1, если существует аргумент с порядковым номером n; т.е. если этот аргумент был явно указан при вызове программы. В противном случае возвращается результат 0.
Omitted    Возвращает результат 1, если опущен аргумент с порядковым номером n; т.е. если этот аргумент не был явно указан при вызове программы. В противном случае возвращается результат 0.

Ниже приведено несколько примеров: /* строка вызова подпрограммы: "Call name;" (без аргументов) */ ARG( ) -> 0 ARG(1) -> '' ARG(2) -> '' ARG(1,'e') -> 0 ARG(1,'O') -> 1

/* строка вызова подпрограммы: "Call name 'a',,'b';" */ ARG( ) -> 3 ARG(1) -> 'a' ARG(2) -> '' ARG(3) -> 'b' ARG(n) -> '' /* для n>=4 */ ARG(1,'e') -> 1 ARG(2,'E') -> 0 ARG(2,'O') -> 1 ARG(3,'o') -> 0 ARG(4,'o') -> 1

Примечания:

  1. Вы можете восстановить и непосредственно разобрать по переменным строки аргументов для программы или внутренней функции с помощью инструкции ARG или PARSE ARG.
  2. Программы, вызываемые как команды, могут иметь только одну строку аргументов или не иметь их вовсе. Считается, что программа не имеет аргументов, если она вызывается только по имени; и имеет одну строку аргументов, если к имени команды добавлено еще что-нибудь (включая пробелы).
  3. Программы, вызываемые с помощью точки входа REXXSTART, могут иметь множество строк аргументов.



Содержание раздела