フォーマット 3
フォーマット 3 は、可変長レコードを指定するために使います。
| フォーマット 3 |
 >>-RECORD--+----+--VARYING--+----+--+------+-------------------->
'-IS-' '-IN-' '-SIZE-'
>--+------------------+--+------------+--+------------+--------->
'-+------+--整数-6-' '-TO--整数-7-' '-CHARACTERS-'
'-FROM-'
>--+-------------------------------+---------------------------><
'-DEPENDING--+----+--データ名-1-'
'-ON-'
|
- 整数-6
- ファイル中のいずれかのレコードに含まれるバイトの最小数を指定します。
整数-6 を指定しない場合、ファイル中のレコードに含まれるバイトの最小数は、
そのファイルの中のレコードに書き込まれたバイト数の最小のものに等しくなります。
- 整数-7
- ファイル中のいずれかのレコードに含まれるバイトの最大数を指定します。
整数-7 を指定しない場合、ファイル中のレコードに含まれるバイトの最大数は、
そのファイルの中のレコードに書き込まれたバイト数の最大のものに等しくなります。
レコード記述に関連したバイト数は、
すべての基本データ項目 (再定義したものと名前を変更したものを除く) のバイトの個数と、
同期のために必要な暗黙の FILLER を加算して得られた合計によって決まります。テーブルを指定した場合は、次のようになります。
- レコードに記述されたテーブル・エレメントの最小数を上記の加算で使用することにより、
レコード記述に関連付けられるバイトの最小数が決定されます。
- レコードに記述されたテーブル・エレメントの最大数を上記の加算で使用することにより、
レコード記述に関連付けられるバイトの最大数が決定されます。
データ名-1 を指定した場合は、次のようになります。
- データ名-1 は、基本符号なし整数でなければなりません。
- データ名-1 をウィンドウ化日付フィールドにすることはできません。
- レコード内のバイトの数は、そのファイルに対して RELEASE、REWRITE、または WRITE のうちのいずれかのステートメントが実行される前に、データ名-1 によって参照されるデータ項目の中に入れておかなければなりません。
- DELETE、RELEASE、REWRITE、START、または WRITE が実行されても、また READ または RETURN ステートメントが正しく実行されなかった場合も、データ名-1 によって参照されるデータ項目の内容は変わりません。
- ファイルに対して READ ステートメントまたは RETURN ステートメントが正しく実行された後、データ名-1 によって参照されるデータ項目の内容は、今読み取られたレコード内のバイトの数を示しています。
RELEASE、REWRITE、または WRITE の各ステートメントの実行中に、
レコードの中のバイトの数は次の条件により決定されます。
- データ名-1 が指定されている場合は、データ名-1 によって参照されるデータ項目の内容によって。
- データ名-1 が指定されず、レコードに可変オカレンス・データ項目が含まれない場合は、
レコード内のバイト位置の数によって。
- データ名-1 が指定されず、
レコードに可変オカレンス・データ項目が含まれる場合は、固定位置と、
出力ステートメント実行時のオカレンス項目数によって示されるテーブルの該当位置との合計によって。
READ ... INTO または RETURN ... INTO ステートメントの実行中に、
暗黙の MOVE ステートメントの送り出しデータ項目として加わるカレント・レコード内のバイトの数は、
次の条件によって決定されます。
- データ名-1 が指定されている場合は、データ名-1 によって参照されるデータ項目の内容によって。
- データ名-1 が指定されていない場合は、データ名-1 が指定されていたとしたらそのデータ名-1 によって参照されるデータ項目に移動されることになる値によって。
|