便利な関数

REXX は、文字操作および変換関数など、豊富な組み込み関数を提供しています。こうした関数には、比較式を記述するときに利用できるものがあります。関数を呼び出すには、関数名に続いて括弧の中に 1 つ以上の引数を指定します。関数名と左括弧の間には、スペースを置きません。例:
function(arguments)
関数呼び出しには、コンマで区切って、最大 20 個までの引数を指定できます。引数の例を以下に示します。
引数
空白
function( )
Constant
function(55)
シンボル
function(#5)
リテラル・ストリング
function('With a literal string')
関数が認識するオプション
function(option)
関数の追加
function(function(arguments))
引数タイプの組み合わせ
function('Literal string', #5, option)
REXX が提供する組み込み関数のうち、有用と思われるものをいくつか紹介します。
ABS()
1.

1 ABS (number)
number の絶対値を戻します。例えば、フィールド #12 に -10 から +10 までの範囲内の値が入っているレコードを選択するには、次のように指定してください。
ABS(#12) <= 10
MAX()
2.

1 MAX (+ , number)
指定されたリストの中から最も大きい数値を戻します。例えば、フィールド#10, #11,、または #12 のいずれかに 55 より大きい値が入っているレコードを選択するには、次のように指定してください。
MAX(#10, #11, #12) > 55
MIN()
3.

1 MIN (+ , number)
指定されたリストの中から最も小さい数値を戻します。例えば、フィールド #10, #11,、または #12 の いずれかに 0 より小さい値が入っているレコードを選択するには、 次のように指定してください。
MIN(#10, #11, #12) < 0
POS()
4.

1 POS ( needle , haystack
2.1 ,start
1)

ストリング needle の、別のストリング haystack 内の位置を戻します。needle がヌル・ストリングの場合、haystack にない場合、または starthaystack の長さより大きい場合には、0 を戻します。デフォルトでは、haystack の先頭バイトから検索を始めます (つまり、start の値は 1 です)。検索の開始位置 start (正の整数でなければなりません) を指定して、 このデフォルトを変更することができます。例えば、フィールド #22 にブランクが入っているレコードを選択するには、次のように指定してください。POS(' ',#22) > 0

SUBSTR()
5.

1 SUBSTR (string,n
2.1 ,
2.2.1 length
2.2.1 ,pad
1)

stringn 番目の文字から始まる、長さ length バイトのサブストリングを、必要な場合には pad を埋め込んで、戻します。n は正の整数です。nstring の長さより大きい場合は、埋め込み文字だけを戻します。

length を指定しないと、ストリングの残り部分が戻されます。デフォルトの pad 文字はブランクです。

例えば、フィールド #22 のバイト 4~6 が、 ストリング 'NOT' であるレコードを選択するには、次のように指定してください。
SUBSTR(#22,4,3) = 'NOT'