相対レコード入出力

Open PL/I では、ファイル内のレコードの相対レコード番号を表す数字キーによって連続ファイルにアクセスするための入出力方法も提供しています。これは相対レコード入出力と呼ばれます。固定長レコードのファイルでのみ使用でき、索引 (VSAM) ファイルでは使用できません。

相対レコード入出力ファイルはキー付きファイルと見なされますが、キーはファイル内には保存されません。それらのキーは、単にファイル内でのレコードの序数にすぎません。キーは正の整数でなければなりません。入出力文の KEY オプションまたは KEYFROM オプションで使用する値は、整数であるか、整数に変換可能な値でなければなりません。

相対レコード入出力ファイルの宣言では ENVIRONMENT 属性は使用されません。その代わりに、OPEN 文の TITLE オプションの拡張機能を使用してファイルを指定します。この TITLE オプションの形式は次のとおりです。

TITLE('filename -DAM n')

この場合の n は、ファイル内のレコードの長さです。長さ n には、各レコードの先頭に通常追加される 2 バイトが含まれます。このハーフワードは、ファイルに関する特別な情報を記録するために使用されます (「TITLE オプション」のセクションを参照)。

一般に、相対レコード入出力ファイルでは索引ファイルの場合と同じ一連の PL/I 入出力操作を使用できます。

相対レコード入出力ファイルは、次のように TITLE オプションの追加の拡張機能を使用して作成できます。

TITLE('filename -DAM n -NOSIZE')

この -NOSIZE オプションは、2 バイトの特別なフィールドをデータ レコードに付加しないことを示します。ファイルに -NOSIZE が指定されている場合、そのファイルに対して DELETE 文は使用できません。