READ

制約事項: 本トピックは Windows 環境にのみ該当します。

[label] READ decb

,SF|SB

,dcb-address

,area-address

[,length|'S']

パラメーター

decb
生成されるデータ イベント制御ブロックに使用するラベル
dcb-address
読み取るファイルの DCB のアドレス
area-address
データを受け取るバッファーのアドレス
length|'S'
転送するバイト数、またはブロック全体を読み取ることを示す 'S' (デフォルト)。S は一重引用符で囲む必要があります。

データ イベント制御ブロックの形式は次のとおりです。

バイト 内容
0 から 3 ゼロの全語
4 タイプ フラグ:パラメーター 'S' がマクロで使用される場合は x'80'、それ以外は x'00'
5 サブタイプ フラグ:常に x'20'
6 から 7 'S' を指定する場合や、フィールドを 0 に設定する際にレジスタ表記を使用する場合を除き、2 バイト バイナリ フィールドは長さパラメーターの値に設定されます。
8 から 11 DCB のアドレス
12 から 15 データを受け取る領域のアドレス

説明

BSAM ファイルの 1 つのブロックがファイルからメモリのバッファーに転送されます。ユーザー プログラムでは、ブロックに複数の論理レコードが含まれる場合に必要なブロック化解除などの処理を行います。

マクロで生成されるデータ イベント制御ブロック (DECB) はメインフレームと互換性がありますが、各 READ 操作は同期しています。つまり、操作が完了するまで制御は呼び出し元のプログラムに戻りません。

入力/出力パラメーター ブロックは生成されないか使用されません。

例 1:

QREAD READ INDECB,SF,INFILE,INBUF,'S'

この例では、INFILE の開いている DCB で識別されたファイルから、INBUF で識別されたバッファーに 1 つのブロック全体を読み取ります。

例 2:

READ RDECB5,SF,(*,FILEADDR),(3)

この例では、間接的な S タイプ アドレス定数 (*,FILEADDR) で識別された DCB から、アドレスがレジスタ 3 で保持されるバッファーへ 1 つのブロックを読み取ります。