Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, 言語解説書

位置指定モード

位置指定モードでは、バッファーの位置がポインター変数に割り当てられます。 基底付き変数は、レコードについて記述しています。 別々の基底付き変数を使用すれば、同じデータを別々に解釈させることが できます。 また、位置指定モードを使用すれば、自己定義レコードを読み取ることもできます。 自己定義レコードでは、そのレコードの一部に入っている情報が、そのレコードの残りの部分の 構造体を表します。 例えば、そのような情報としては、配列の境界や、そのデータの属性に合わせてどの基底付き 構造体を使用する必要があるかを表すコードなどがあります。

SET オプションが指定された READ ステートメントは、レコードが入っているバッ ファーを示すために、SET オプションで指定されたポインター変数をセットします。 したがって、このポインター変数で修飾された基底付き変数を使用すれば、 レコードのデータを参照することができます。

このポインター値は、同じファイルを参照する次の READ ステートメントまたは CLOSE ステートメントが実行されるまで有効です。

SET オプションで指定したポインター変数が使用されるか、または SET を 省略した場合は基底付き変数の宣言内で指定したポインター変数が使用されます。 このポインター値は、同じファイルを参照する次のステートメント LOCATE、WRITE、 または CLOSE が実行されるまで有効です。 REFER オプションで指定された基底付き変数のコンポーネントを初期設定します。

LOCATE ステートメントは、次のレコードを構築することができるだけの大きさを持つ 区域に、ポインター変数をセットします。

LOCATE ステートメントを実行したあとは、LOCATE ステートメントによってセッ トされたポインター変数で修飾された基底付き変数に、値を直接割り当てることができます。

次に、位置指定モードの入力の例を示します。

dcl 1 Data based(P),
2

·
·
·
;   on endfile(In) ; read file(In) set(P); do while (¬endfile(In));
·
·
·
/* process record */ read file(In) set(P); end;

次に、位置指定モードの出力の例を示します。

dcl 1 Data based(P);
 2

·
·
·
;   do while (More_records_to_write); locate Data file(Out);
·
·
·
/* build record */ end;

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)