COBOL2002 言語 拡張仕様編


25.4.16 TRANSFORM文

形式

[図データ]

機能

TRANSFORM文は,データ項目中のある文字をほかの文字に変換する。

(備考)

TRANSFORM文は,COBOL規格にない。

構文規則

  1. 一意名1は,項目が英字,英数字,数字(外部10進だけ),英数字編集または数字編集の基本項目かまたは強く型付けされていない集団項目を参照するものでなければならない。

  2. 一意名2と一意名3は,項類が英字または英数字の基本項目かまたはサイズが可変でない集団項目を参照するものでなければならない。そのサイズは256文字以下でなければならない。

  3. 定数2と定数3は,英数字定数かまたはALL定数以外の表意定数でなければならない。定数2や定数3に表意定数を指定したときには,そのサイズは1文字とみなされる。

  4. 一意名3のデータ項目や定数3のサイズは一意名2のデータ項目や定数2のサイズと同じでなければならない。そうでなければ,定数3のサイズは1文字でなければならない。

  5. 一意名1,一意名2,一意名3は,部分参照してはならない。

一般規則

  1. 定数3のサイズが1文字のとき,一意名1のデータ項目中の文字で,定数2または一意名2のデータ項目中に含まれる文字と等しいものは,すべて定数3の表す1文字に変換される。

    (例)

               TRANSFORM A FROM 'ABCDEFGHI' TO '*'
               TRANSFORM B FROM SPACE TO ZERO.

    一意名A中の文字A〜Iのすべてが一つの文字「*」に変換される。また,一意名B中の文字「空白」はすべて文字「ゼロ」に変換される。

  2. 一般規則1以外のとき,一意名1のデータ項目中の文字で,定数2または一意名2のデータ項目中に含まれる文字と等しいものは,定数3または一意名3のデータ項目中の対応する文字位置にある文字に変換される。

    (例)

               TRANSFORM C FROM '123456789' TO 'ABCDEFGHI'.

    一意名Cの文字「1」は文字「A」に,文字「2」は文字「B」に,…文字「9」は文字「I」にそれぞれ変換される。

  3. 一意名2のデータ項目や定数2の中に,同じ文字が重複して存在するときのTRANSFORM文の実行結果は保証しない。