COBOLで文字列を切り出す方法
COBOLでは、文字列を切り出す方法が以下に示されています。
- TALLYING句を使用して、トリム対象文字列の開始位置および長さを指定できます。例:
01 STRING-VARIABLE PIC X(10).
01 SUBSTRING-VARIABLE PIC X(5).
MOVE 'ABCDEFGHIJ' TO STRING-VARIABLE.
INSPECT STRING-VARIABLE TALLYING FUNCTION LENGTH(STRING-VARIABLE)
BEFORE INITIAL 'F'
AFTER INITIAL 'E'
INTO SUBSTRING-VARIABLE.
上記の例では、SUBSTRING-VARIABLEには文字列’ABCDE’が入ります。
- STRING関数のSTART、LENGTHパラメータで切り出す文字列の開始位置と長さを指定できます。たとえば:
01 STRING-VARIABLE PIC X(10).
01 SUBSTRING-VARIABLE PIC X(5).
MOVE 'ABCDEFGHIJ' TO STRING-VARIABLE.
MOVE FUNCTION STRING(STRING-VARIABLE, 6, 5) TO SUBSTRING-VARIABLE.
上の例では、SUBSTRING-VARIABLEには文字列’FGHIJ’が入ります。
- UNSTRING ステートメントを使用する: UNSTRING ステートメントを使用して、文字列を複数のサブ文字列に分割し、異なる変数に格納できます。例えば、
01 STRING-VARIABLE PIC X(10).
01 SUBSTRING-VARIABLE1 PIC X(5).
01 SUBSTRING-VARIABLE2 PIC X(5).
MOVE 'ABCDEFGHIJ' TO STRING-VARIABLE.
UNSTRING STRING-VARIABLE
DELIMITED BY 'EF'
INTO SUBSTRING-VARIABLE1, SUBSTRING-VARIABLE2.
上記の例では、SUBSTRING-VARIABLE1 に ‘ABCD’ という文字列が、SUBSTRING-VARIABLE2 に ‘GHIJ’ という文字列が入ります。
COBOLで文字列を切り出すのに一般的に使用されるこれらの方法のどれを使用するかは、自身のニーズとプログラムの構造によって決まります。