QSAM を使用したファイル処理

アセンブラ・サポートには、データ・セット編成 PS および PSU を使用する、QSAM スタイルのファイル処理があります。ファイルを DCB マクロで定義し、そのファイルを OPEN、CLOSE、GET および PUT の要求マクロで処理します。QSAM ファイル処理は、GET、PUT または GET/PUT の MACRF のオプション G、P または G,P によって DCB で識別されます。2 バイト COBOL ANSI 85 ファイル・ステータス・コードは、データ制御ブロック (DCB) のバイト 6 のすべてのファイル操作後に利用できます。

ファイル・フォーマットは固定レコード、可変レコード、または Micro Focus 行順次レコードになります。読み取りまたは書き込みが行われた最後のレコードの長さは、常に DCB の LRECL フィールドで入手できます。

可変長レコードの場合、各レコードの先頭には、4 バイトのメインフレーム互換レコード記述語 (RDW) が付けられます。

Micro Focus 行順次ファイルの編成を使用するには、DCB で RECFM=T を指定します。すべてのレコードは可変長であり、読み取りや書き込みに関わらず、ANSI 改行復帰文字 (x"0D0A") で終わらなければなりません。

アセンブラ・サポートで提供されるサンプル・プログラムの一部に、QSAM スタイルのファイル処理の使用が示されています。これらのファイルはすべて、デフォルトで %PUBLIC%\Documents\Micro Focus\Enterprise Developer\Samples\Mainframe\Assembler\Classic\QSAM ディレクトリにあります。

プログラム サマリ
pgasm04.mlc 入力/出力マクロ文を使用して、行順次ファイルをコピーします。入力ファイルは mf370get.dat、新しい出力ファイルは mf370put.dat です。プログラムでレコードをコピーすると、レコードが画面に表示されます。
qsamex4.mlc ANSI テキスト・ファイル (行順次フォーマット) を読み取り、80 文字固定長レコードの EBCDIC PS ファイルにレコードを書き込みます。このサンプル・プログラムは、ASCII テキスト・ファイルを、他のアセンブラ・プログラムで読み取る 80 バイト EBCDIC カードイメージに変換する場合にかなり役立ちます。