便利な関数
REXX は、文字操作および変換関数など、豊富な組み込み関数を提供しています。こうした関数には、比較式を記述するときに利用できるものがあります。これらについて、下のリストで説明します。FM/IMS も使用可能な関数を提供しています。それらの関数についても下のリストで説明します。関数を呼び出すには、関数名に続いて括弧の中に 1 つ以上の引数を指定します。関数名と左括弧の間には、スペースを置きません。例:
function(arguments)
関数呼び出しには、コンマで区切って、最大 20 個までの引数を指定できます。各引数は次のうちの 1 つ以上になります。
- 引数
- 例
- 空白
- function( )
- Constant
- function(55)
- シンボル
- function(#5)
- リテラル・ストリング
- function('With a literal string')
- 関数が認識するオプション
- function(option)
- 関数の追加
- function(function(arguments))
- 引数タイプの組み合わせ
- function('Literal string', #5, option)
REXX が提供する組み込み関数のうち、有用と思われるものをいくつか紹介します。
- ABS
- number の絶対値を戻します。例えば、フィールド
#12
に、-10 から +10 までの値が入っているレコードを選択したいときには、次のように指定できます。ABS(#12) <= 10
- MAX
- 指定されたリストの中から最も大きい数値を戻します。例えば、フィールド
#10, #11,
、または#12
のいずれかに、55 より大きい値が入っているセグメントを選択する場合には、 次のように指定できます。MAX(#10, #11, #12) > 55
- 分
- 指定されたリストの中から最も小さい数値を戻します。例えば、フィールド
#10, #11,
、または#12
のいずれかに 0 より小さい値が入っているセグメントを選択する場合には、 次のように指定できます。MIN(#10, #11, #12) < 0
- POS
もう 1 つのストリング haystack 内にあるストリング needle の位置を戻します。needle がヌル・ストリングの場合、haystack にない場合、または start が haystack の長さより大きい場合には、0 を戻します。デフォルトでは、haystack の先頭文字から検索を始めます (つまり、start の値が 1)。検索の開始位置 start (正の整数でなければなりません) を指定して、 このデフォルトを変更することができます。例えば、フィールド
#22
のいずれかの文字がブランクであるセグメントを選択する場合には、次のように指定できます。POS(' ',#22) > 0
- SUBSTR
string の n 番目の文字から始まる、長さ length のサブストリングを、必要な場合には pad を埋め込んで、戻します。n は正の整数です。n が string の長さより大きい場合は、埋め込み文字だけを戻します。
length を指定しないと、ストリングの残り部分が戻されます。デフォルトの pad 文字はブランクです。
例えば、フィールド#22
の文字 4-6 が、 ストリング「NOT」であるセグメントを選択するときは、次のように指定できます。SUBSTR(#22,4,3) = 'NOT'