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

FILE 属性

FILE 属性は、対応する名前がファイル定数またはファイル変数であることを指定します。

構文図を読む構文図をスキップする>>-FILE--------------------------------------------------------><
 

ファイル定数に、いずれかのファイル記述属性が付いていると、そのファイル定数には FILE 属性が暗黙に付けられます。 ある名前を、入出力ステートメントの FILE オプションに書くか、または任意の入出力条件に対する ON ステートメント内に書けば、その名前をファイル定数としてコンテキスト上から宣言することができます。

ファイル定数

PL/I プログラムで処理するデータ・セットは、 それぞれファイル定数に関連づけられていなければなりません。

それぞれのファイル定数の個々の特性は、ファイル記述属性によって記述されます。 これらの属性は、代替属性と追加属性の 2 つのカテゴリーに分類されます。

代替 属性とは、属性のグループ内から選択される属性です。 あるグループ内の択一属性の 1 つが明示的にも暗黙的にも宣言されておらず、しかもそのグループ内の属性が必須である場合には、デフォルトの属性が使用されます。

表 29 では、PL/I の代替ファイル属性をリストしています。

表 29. 代替ファイル属性
グループ・
タイプ
代替属性
デフォルトの属性
使用法
STREAM または RECORD
STREAM
関数
INPUT または OUTPUT または
UPDATE
INPUT
アクセス
SEQUENTIAL または DIRECT
SEQUENTIAL
バッファ
リング
BUFFERED または UNBUFFERED
BUFFERED
(SEQUENTIAL ファイルの場合)

UNBUFFERED
(DIRECT ファイルの場合)
有効範囲
EXTERNAL または INTERNAL
EXTERNAL

追加 属性とは、明示的に宣言しなければならない属性、または明 示的に宣言された別の属性によって暗黙に定義される属性です。 追加属性には、ENVIRONMENT、 KEYED および PRINT があります。 追加属性 KEYED は、DIRECT 属性によって暗黙に定義されます。 追加属性 PRINT は、出力ファイル名 SYSPRINT によって暗黙に定義することができます。

表 30 は、それぞれのデータ伝送タイプに適用される 属性を示したものです。

表 30. データ伝送のタイプによる属性
伝送のタイプ 属性
ストリーム指向 ENVIRONMENT
  INPUT および OUTPUT
  PRINT
  STREAM
レコード単位 BUFFERED および UNBUFFERED
  DIRECT および SEQUENTIAL
  ENVIRONMENT
  INPUT、OUTPUT、および UPDATE
  KEYED
  RECORD

表 31 には、ファイル属性の正しい組み合わせが示されています。

表 31. PL/I ファイルを宣言するときの属性
ファイル・
タイプ
   S
   T
   R
   E
   A
   M
RECORD
凡例:
I
指定または暗黙指定が必要  
D
デフォルト
O
オプション
S
指定が必要
-
無効
SEQUENTIAL
DIRECT
データ・
セットの
編成
   C
   o
   n
   s
   e
   c
   u
   t
   i
   v
   e
   C
   o
   n
   s
   e
   c
   u
   t
   i
   v
   e
   R
   e
   l
   a
   t
   i
   v
   e
   I
   n
   d
   e
   x
   e
   d
   R
   e
   l
   a
   t
   i
   v
   e
   I
   n
   d
   e
   x
   e
   d
ファイル属性
暗黙指定属性
FILE
I
I
I
I
I
I
INPUT1
D
D
D
D
D
D
FILE
OUTPUT
O
O
O
O
O
O
FILE
ENVIRONMENT
O
O
O
O
O
O
FILE
STREAM
D
-
-
-
-
-
FILE
PRINT1
O
-
-
-
-
-
FILE STREAM OUTPUT
RECORD
-
I
I
I
I
I
FILE
UPDATE
-
O
O
O
O
O
FILE RECORD
SEQUENTIAL
-
D
D
D
-
-
FILE RECORD
KEYED2
-
-
O
O
I
I
FILE RECORD
DIRECT
-
-
-
-
S
S
FILE RECORD KEYED
注:
  • 1 INPUT 属性を持つファイルは、PRINT 属性を 持つことはできません。
  • 2 KEYED は、INDEXED 出力と RELATIVE 出力の場合は必須です。

有効範囲については、宣言の有効範囲で説明されています。

ファイル定数に、この章で説明しているいずれかのファイル記述属性が付いていると、そのファイル 定数には FILE 属性が暗黙に付けられます。 ある名前を、入出力ステートメントの FILE オプションに書くか、または任意の入出力条件に対する ON ステートメント内に書けば、その名前をファイル定数としてコンテキスト上から宣言することができます。

次の例では、名前 Master は、ファイル定数として宣言されています。

  declare Master file;

ファイル変数

ファイル変数は、FILE 属性と VARIABLE 属性を持ちますが、 どのファイル定数記述属性も持つことはできません。 ファイル変数には、ファイル定数を割り当てることができます。 割り当て後、ファイル変数を参照することは、割り当てられたファイル定数を参照することと同じになります。

レコード単位の伝送ステートメントを使用して、データ・セットのファイル変数の値を伝送することができます。 伝送後は、そのデータ・セットのファイル変数の値は有効でないことがあります。

VARIABLE 属性は、VARIABLE 属性で説明されている環境において 暗黙に定義されます。

次の例に示す宣言 Account はファイル変数として宣言され、 Acct1Acct2 は、ファイル定数として宣言されています。 このあと、これらのファイル定数をこのファイル変数に割り当てることができます。

  declare Account file variable,
    Acct1 file,
    Acc2 file;

構文については、VARIABLE 属性を参照してください。

ファイル参照の指定

ファイル参照は、ファイル定数、ファイル変数、または FILE 属性を持つ値を戻す関数参照のいずれかです。 ファイル参照は、次のように使用することができます。

ファイル定数の値を表すファイル変数を利用して、そのファイル定数用の ON ユニットを設定できます (ファイル変数のための ON ユニットを参照してください)。 次の例では、L1L2 のラベルが付いている 2 つのステートメントは、 同じファイルに対してヌルの ON ユニットを指定しています。

  dcl F file,
      G file variable;
      G=F;
  L1:  on endfile(G);
  L2:  on endfile(F);

Terms of use | Feedback

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