FIELD 関数

構文

FIELD (string, delimiter, occurrence [ ,num.substr] )

説明

FIELD 関数を使用すると、string 内の指定した区切り文字の間にある 1 つ以上のサブストリングを返すことができます。

delimiter は、フィールド・マーク、値マーク、サブ値マークを含むいずれかの文字として評価されます。これは、サブストリングの始点および終端を区切ります。 delimiter が、複数の文字と評価されると、先頭文字のみが使用されます。区切り文字は、サブストリングとともには返されません。

occurrence は、区切り文字の出現が、終了文字として使用されることを指定します。occurrence が 1 未満の場合、1 とみなされます。

num.substr には、区切り文字で区切られている、返すサブストリングの数を指定します。num.substr の値が空白ストリングか 1 未満の場合、1 とみなされます。1 つよりも多くのサブストリングが返される場合、連続するサブストリングとともに区切り文字も返されます。

delimiter または occurrence のどちらかがストリング内にない場合、occurrence で 1 を指定しない限り、空白ストリングが戻ります。 occurrence が 1 で、delimiter が検出されない場合は、ストリング全体が戻ります。delimiter が空白ストリングの場合、ストリング全体が戻ります。

string が NULL 値として評価される場合、NULL が戻ります。string に CHAR(128) (すなわち @NULL.STR) が含まれている場合、ストリング内の他の文字と同様に扱われます。delimiteroccurrence、または num.substr が NULL 値として評価されると、FIELD 関数は正しく実行されずプログラムはランタイム・エラー・メッセージを出力して終了します。

FIELD 関数の機能は GROUP 関数と同じです。

D=FIELD("###DHHH#KK","#",4)
PRINT "D= ",D

変数 D は DHHH に設定されます。これは、区切り文字 # の 3 番目と 4 番目の間にあるデータが DHHH であるからです。

REC="ACADABA"
E=FIELD(REC,"A",2)
PRINT "E= ",E

変数 E は、「C」に設定されます。

VAR="?"
Z=FIELD("A.1234$$$$&&",VAR,3)
PRINT "Z= ",Z

Z は「?」がストリングに現れないので、空白ストリングに設定されます。

Q=FIELD("+1+2+3ABAC","+",2,2)
PRINT "Q= ",Q

2 つの連続するフィールドが、「+」の 2 回目の出現後に返されるように指定されたので、Q は「1+2」に設定されます。

次のプログラム出力が得られます。

D=       DHHH
E=       C
Z=
Q=       1+2