FMT (DBCS 形式の設定)

目的
2 バイト文字セット (DBCS) のデータを含むレコードの形式を指定します。
使用上の注意
File Manager は、データは、入力レコードの 1 つ以上のフィールドに入っているものとみなします。この機能では、ユーザーが、各タイプのフィールドがレコード内のどこに位置するかを定義することができます。昇順で最大 32 個のフィールドまで定義できます。それらのフィールドは、重なり合ってはなりませんが、隣接する必要はありません。フィールドごとに、開始桁、終了桁、タイプを指定します。終了桁のアスタリスク (*) は、レコードの終わりを示します。タイプには、EB (EBCDIC 形式の場合)、DB (DBCS 形式の場合)、または MI (混合形式の場合) を指定することができます。

定義しないすべての領域では、File Manager が EBCDIC フィールド定義を作成します。

FMT 機能をバッチ・ジョブの中で使用すると、形式定義は、現行バッチ・ジョブ内だけに影響します。その他の場合はいずれも、形式の定義がユーザー・プロファイルに保管され、後の File Manager セッションで使用されます。

FMT 機能と SET 機能の「DBCS 使用可能言語」処理オプションは、次のように関連して動作します。
  • FMT 機能は、各レコードでどのデータが DBCS であるかを指定します。
  • SET 機能の「DBCS 使用可能言語」オプションを使用すると、DBCS データが正しく印刷されるようになります。

SET 機能について詳しくは、SET (処理オプションの設定)を参照してください。

注: FMT 機能は、使用される言語が DBCS 対応言語であるときや、使用される端末装置が DBCS 対応である場合、TSO を使用しているときには、拡張機能モードの印刷機能によって TABL または SNGL 印刷形式で印刷されるデータには作用しません。ただし、言語が非 DBCS 言語であるときや、TSO 端末装置が DBCS 対応でないときには、DB タイプを使用して、出力内のグラフィック・フィールドを正しく形式設定することができます。
オプション
RESET は、デフォルト (1,*,EB) を使用することを指定します。LIST は、現行の FMT 設定値のリストを印刷します。
1. Syntax

1 FMT
1 RESET
1 LIST
1 SET,+ ,(1)FLD=(start,end,type)
注:
  • 1 FLD キーワードを使用して、最大 32 個のフィールドを指定できます。
LIST
すべてのフィールド定義をリストします。明示的にフィールド定義を行った場合も、File Manager のデフォルトを用いた場合も同じです。
RESET
すべてのフィールド定義をデフォルト FLD=(1,*,EB) にリセットします。
SET
新しいフィールドの集合を定義します。
start
フィールドの開始位置。バイト単位で表し、1 はレコードの始めを示しています。
end
フィールドの終了位置 (バイト単位)。レコードの終わりにはアスタリスク (*) を指定します。
type
フィールドのタイプ。
DB
DBCS データ。フィールド長は、バイト数が偶数でなければなりません。不定形式のグラフィック・フィールドは DBCS として扱われません。
MI
DBCS と EBCDIC の混合データ。シフトアウト文字 X'0E' とシフトイン文字 X'0F' の間のデータが DBCS データとして扱われます。
EB
EBCDIC データ (デフォルト)。

フィールド定義は昇順でなければならず、重なり合ってはなりません。定義されていない区域は EBCDIC データであるとみなされます。

32 フィールドまで定義可能です。

例えば、次のコマンドの場合を考えてみます。
   FMT,SET,FLD=(10,27,MI),FLD=(40,59,DB)
次のフィールド定義が得られます。
   FIELD1 (1,9,EB)
   FIELD2 (10,27,MI)
   FIELD3 (28,39,EB)
   FIELD4 (40,59,DB)
   FIELD5 (60,*,EB)
File Manager は、定義の調整を行いやすくするための次のスケールとともに、レコードのマスクを印刷します。
   EEEEEEEEEMMMMMMMMMMMMMMMMMMEEEEEEEEEEEEDBDBDBDBDBDBDBDBDBDBE*
   1...5...10....5...20....5...30....5...40....5...50....5...60.

有効な 2 バイトの 16 進数値は、X'0000'、X'4040'、および X'4141' から X'FEFE' です。File Manager は、その他のすべての 2 バイト文字の組を、X'4040' と置き換えます。

//FMT JOB (acct),'name'  Define DBCS Record Fmt
//FILEMGR   EXEC PGM=FILEMGR
//SYSPRINT  DD SYSOUT=*
//SYSIN     DD *
$$FILEM FMT SET,FLD=(10,27,MI),FLD=(40,59,DB)
$$FILEM EOJ
/*