# TRANSFORM文

説明書の該当箇所: 6.5.29 TRANSFORM文

  TRANSFORM文.cob        英数字の文字変換
  日本語TRANSFORM文.cob  同じことを日本語項目で行う

どちらも Standard 版で動きます。
正しく動くと 001 OK から順に番号付きの OK が並びます。

# 何をする文か

項目の中の文字を、1文字ずつ対応表に従って置き換えます。

  TRANSFORM a FROM b TO c.
  TRANSFORM a FROM "XZABC" TO "xzabc".

FROM に並べた文字が、TO の同じ位置の文字に変わります。
上の例では X→x、Z→z、A→a、B→b、C→c です。
含まれていない文字(Y)はそのまま残ります。

  "XYZABC"  →  "xYzabc"

# 図形定数も使えます

FROM と TO には ZERO や SPACE といった図形定数を書けます。

  "0134013000"  TRANSFORM a FROM ZERO  TO SPACE   →  " 134 13   "
                TRANSFORM a FROM SPACE TO ZERO    →  "0134013000"

2つを続けて書いてあるので、元に戻ることが確かめられます。
桁を揃えたまま特定の文字だけを入れ替えたいときの書き方です。

# INSPECT CONVERTING との関係

同じことは INSPECT ... CONVERTING でも書けます。

  6_5_18_INSPECT文\INSPECT文-書き方4.cob

TRANSFORM文 は 1985年の COBOL 標準で廃止され、その機能は
INSPECT文 の書き方4に取り込まれました。新しく書くなら INSPECT CONVERTING
を使います。古いプログラムを読むときのために、両方をサンプルにしてあります。

# 日本語版との違い

日本語版は、変換の対象も対応表も日本語定数 NC"..." で書きます。
全角文字1文字を単位に置き換わるので、
結果の照合も NC"ａＢＣｄＥｆＧＨＩＪ" のような形になります。
