便利な関数

REXX は、文字操作および変換関数など、豊富な組み込み関数を提供しています。こうした関数の一部は、比較式を記述するときに利用できるものがあり、以下で説明します。File Manager も使用可能な関数を提供しています。それらの関数についても後で説明します。関数を呼び出すには、関数名に続いて括弧の中に 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()
1. Syntax

1 ABS (number)

number の絶対値を戻します。例えば、フィールド #12 に、-10 から +10 までの範囲の値が入っているレコードを選択したいときには、次のように指定できます。

ABS(#12) <= 10
MAX()
2. Syntax

1 MAX (+ , number)

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

MAX(#10, #11, #12) > 55
MIN()
3. Syntax

1 MIN (+ , number)

指定されたリストの中から最も小さい数値を戻します。例えば、フィールド #10, #11, または #12 のいずれかに 0 より小さい値が入っているレコードを選択したいときには、次のように指定できます。

MIN(#10, #11, #12) < 0
POS()
4. Syntax

1 POS ( needle , haystack
2.1 ,start
1)

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

POS(' ',#22) > 0
SUBSTR()
5. Syntax

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'

File Manager が提供する関数で、有用と思われるものをいくつか紹介します。

FLD()
現在の入力レコードのフィールドを参照します。詳しくは、FLDを参照してください。
COntains()
文字値のリストについて、フィールドをチェックします。詳しくは、CONTAINSを参照してください。
NCOntain()
数値のリストについて、フィールドをチェックします。詳しくは、NCONTAINを参照してください。