Rational Developer for System z
COBOL for Windows バージョン 7.5 言語解説書


ASSIGN 文節

ASSIGN 文節は、そのプログラムでのファイルの名前を、実際のデータ・ファイルの外部名と関連付けます。

割り当て名-1
ユーザー定義語または英数字リテラルとして指定することができます。
ユーザー定義語
割り当て名-1 は、COBOL ワードの規則に従う必要があります。割り当て名の name コンポーネントの長さは、最長 30 バイトまでです。ユーザー定義語は、以下のいずれかとして取り扱われます。
  • 環境変数名: プログラムの初期設定時には、name が環境変数として使用されます。環境変数値が設定されている場合、その値はファイル・システム ID の後に続くオプションのシステム・ファイル名として取り扱われます。詳細は、データ名および環境変数に対する割り当て名を参照してください。
  • プラットフォームのシステム・ファイル ID: name で示される環境変数が設定されていない場合、ユーザー定義語は、ファイル・システム ID の後に続くオプションのシステム・ファイル名およびコメント文字ストリングとして取り扱われます。詳細は、非環境変数およびリテラルの割り当て名を参照してください。
リテラル
割り当て名-1 は、プラットフォームに対する実際のファイル ID として取り扱われます。割り当て名-1 は、COBOL リテラルの規則に従い、1 から 160 文字の長さを持つ必要があります。詳細は、非環境変数およびリテラルの割り当て名を参照してください。

リテラル区切り文字に指定された文字はすべて、マッピングなしで使用されます。

 
USING データ名-9
working-storage section に英数字カテゴリーの データ項目として定義する必要があり、ファイル名-1 の ファイル記述に従属していてはなりません。 内容は、割り当て名の確認のためオープンする際に評価されます。詳細は、データ名および環境変数に対する割り当て名を参照してください。

非環境変数およびリテラルの割り当て名

データ名でないリテラルまたはワードが name に指定されている場合、割り当て名は以下のように処理されます。

フォーマット: 割り当て名
構文図を読む構文図をスキップする>>-+------------+--+-------------------------+------------------>
   '-コメント- -'  '-ファイル・システム ID- -'  
 
>--+-システム・ファイル名--+--------------+-+------------------><
   |                       '-| 代替索引 |-' |  
   '-環境変数名-----------------------------'  
 
代替索引:
 
                         .---------------------------------.    
                         V                                 |    
|--(代替索引ファイル名-1---+-----------------------------+-+-)--|
                           '-,--+----------------------+-'      
                                '-代替索引ファイル名-2-'        
 
コメント
システム・ファイル ID の左側のすべての文字はコメントとして取り扱われます。コメントには、例えば my-commentthis-is-my-comment のようにハイフンを入れることができます。
ファイル・システム-ID
ファイル・システム-ID の最初の 3 文字は、ファイル・システム ID を判別するために使用されます。ファイル・システム-ID の文字ストリングが 3 文字未満の場合、文字ストリング全体が (その左側の任意の文字ストリングとともに) コメントとして取り扱われます。コメント (ハイフンの有無にかかわらず) を組み込む場合、コメントとファイル・システム-ID の間はハイフンで分離する必要があります。

以下に例を示します。

my-comment-stl-myfile

この例では、my-comment がコメントであり、stlファイル・システム-IDmyfileシステム・ファイル名 または環境変数名 です。

my-comment-am-myfile

この例では、my-comment-am がコメントであり、myfileシステム・ファイル名 または環境変数名 です。

システム・ファイル名 または環境変数名
割り当て名がリテラル形式で指定されておらず、文字ストリングに一致する環境変数が実行時に検出された場合、その環境変数の値がファイル・システムおよびシステム・ファイル名の識別に使用されます。それ以外の場合は、システム・ファイル名として文字ストリングが使用されます。

代替索引の指定: コンパイラーは通常、デフォルトの代替索引のファイル名を割り当てます。ただし、そのファイルがすでに存在し、コンパイラーが割り当てるデフォルトの代替索引ファイル名と異なる名前を持つ場合、代替索引ファイルのデフォルトの割り当てをオーバーライドする必要があります。例えば、PL/I など、別の言語によって作成されたファイルの場合です。

代替索引名を指定する場合は、ソース・プログラム内で代替レコード・キーを指定しているのと同じ順序にする必要があります。代替索引名は省略できますが、他の代替索引名がある場合はファイル定義内の位置に対応していなければなりません。以下の例では、1 番目と 3 番目の代替索引名を指定する方法を示しています。

base-file-name(first-index-file-name,,third-index-file-name)

上記の例では、コンパイラーは 2 番目の代替索引ファイルに対してデフォルトのファイル名を割り当てます。

代替索引ファイル名は、STL ファイル・システムなど、個別の代替索引ファイルを必要としないファイル・システムの場合、無視されます。

データ名および環境変数に対する割り当て名

環境変数またはデータ名が割り当て名に対して指定されている場合、データ名の値または環境変数の値は以下のように取り扱われます。

フォーマット: 環境変数とデータ名値
構文図を読む構文図をスキップする>>-+-------------------------+--システム・ファイル名------------>
   '-ファイル・システム ID- -'                        
 
>--+-------------------------------------------------------------+-><
   |                       .---------------------------------.   |  
   |                       V                                 |   |  
   '-(代替索引ファイル名-1---+-----------------------------+-+-)-'  
                             '-,--+----------------------+-'        
                                  '-代替索引ファイル名-2-'          
 
ファイル・システム-ID
ファイル・システム-ID が環境変数の値またはデータ名の値によって明示的に指定される場合、ファイル・システムの指定は、割り当て名によってファイル・システムが指定されていてもそれをオーバーライドします。

ファイルに対する環境変数の値は、そのファイルを指定するプログラムが初期状態で最初に実行される (または呼び出される) 際に取得されます。この値は、ファイルに対して、プログラムの後続の呼び出しに備えて最後に使われた状態で保持されます。

データ名で指定されたファイル ID の値は、ファイルがオープンされる際に取得されます。以降の該当ファイルに対する OPEN では、毎回その値が取得されます。

外部ファイルのファイル宣言は、同じファイル・システム ID でなければなりません。 同じ ID でない場合、実行中にエラーが発生し、アプリケーションはエラー・メッセージを出して終了します。

システム・ファイル名
環境変数またはデータ名の値にハイフンが含まれている場合、左端のハイフンの左側にある最初の 3 文字は、ファイル・システム ID として取り扱われます。左端のハイフンの右側にある文字ストリングは、システム・ファイル名 (ドライブ名およびパス名を含む可能性あり) として使用されます。

ハイフンが含まれない場合、または左端のハイフンの左側にある文字ストリングの長さが 3 文字未満の場合、文字ストリング全体がシステム・ファイル名 (ドライブ名およびパス名を含む可能性あり) として使用されます。

代替索引の指定方法の詳細については、非環境変数およびリテラルの割り当て名以下の『代替索引の指定』を参照してください。


ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)