ASSIGN 文節は、そのプログラムでのファイルの名前を、実際のデータ・ファイルの外部名と関連付けます。
リテラル区切り文字に指定された文字はすべて、マッピングなしで使用されます。
データ名でないリテラルまたはワードが name に指定されている場合、割り当て名は以下のように処理されます。
以下に例を示します。
my-comment-stl-myfile
この例では、my-comment がコメントであり、stl はファイル・システム-ID、myfile はシステム・ファイル名 または環境変数名 です。
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 の値は、ファイルがオープンされる際に取得されます。以降の該当ファイルに対する OPEN では、毎回その値が取得されます。
外部ファイルのファイル宣言は、同じファイル・システム ID でなければなりません。 同じ ID でない場合、実行中にエラーが発生し、アプリケーションはエラー・メッセージを出して終了します。
ハイフンが含まれない場合、または左端のハイフンの左側にある文字ストリングの長さが 3 文字未満の場合、文字ストリング全体がシステム・ファイル名 (ドライブ名およびパス名を含む可能性あり) として使用されます。
代替索引の指定方法の詳細については、非環境変数およびリテラルの割り当て名以下の『代替索引の指定』を参照してください。