コンパイル時配列のロード
コンパイル時配列 の場合には、配列ソース・データをプログラム・ソース・メン
バーのレコードの中に入力します。 **ALTSEQ、**CTDATA、および **FTRANS キーワードを使用した場合には、ソース・レ
コードの後の任意の場所に配列データを入力することができます。 それらのキーワードを使用しない場合には、コンパイル時配列およびテーブルが
定義仕様書に定義されている順序で、ソース・レコード、および任意の代替照合順序
またはファイル変換レコードの後に配列データが続いていなければなりません。 このデータは、プログラムのコンパイル時に配列にロードされます。 前の呼び出し
が LR がオフで終了した場合を除き、プログラムが新しいデータで再コンパイル
されるまで、配列はプログラムを呼び出すたびに常に当初の値と同じままです。
コンパイル時配列は、個別にかまたは (ALT キーワードによって) 交互形式で記
述することができます。 交互形式とは、入力レコード上で 1 つの配列の要素が別の配列の要素と混ざり合
っていることを意味します。
配列ソース・レコードに関する規則
配列ソース・レコードについては、次の規則があります。
- 各レコードの最初の配列項目は、1 桁目から始めなければなりません。
- すべての要素は同じ長さで、中間にスペースを入れずに各要素が続いていな
ければなりません。
- レコード全体に項目を埋め込む必要はありません。 そうでない場合には、項
目の後にブランクまたは注記を含めることができます (図 68
を参照)。
- 定義仕様書に指定された配列の要素の数が指定された項目の数より大きい場合
には、残りの要素には指定されたデータ・タイプのデフォルトの値によって埋め込みが
行われます。
図 68. 注記を持つ配列ソース・レコード
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords++++++++++++++++++++
DARC S 3A DIM(12) PERRCD(5) CTDATA
**CTDATA ARC
48K16343J64044HComments can be placed here
12648A47349K346Comments can be placed here
50B125 Comments can be placed here
- 最後のレコード以外の各レコードには、定義仕様書で PERRCD キーワードに
よって指定された項目の数が入っていなければなりません。 最後のレコードでは、未使用の項目はブランクでなければならず、その未使用の
項目の後にブランクまたは注記を含めることができます。
- 各項目の全体が 1 つのレコードの中に入っていなければなりません。 1 つの項目を 2 つのレコードに分割することはできません。したがって、単一の
項目の長さは 100 文字の最大長 (ソース・レコードのサイズ) に制限されています。 配列が使用され、交互形式で記述されている場合には、対応する要素が同じレコ
ード上になければならず、それらの合計の長さが 100 文字を超えることはできま
せん。
- 日付および時刻のコンパイル時配列の場合には、データは同じ形式になって
いなければならず、ロードされている日付または時刻配列と同じ区切り記号が使
用されなければなりません。
- 配列データは、次の 2 つの方法の 1 つで指定することができます。
- **CTDATA 配列名: 配列のデータはコンパイル時データ・セクションのどこ
でも指定することができます。
- **b: (b=ブランク) 配列のデータは定義仕様書に指定された順序どおりに指定
しなければなりません。
1 つのプログラムには、これらの手法を 1 つだけ使用することができます。
- 配列は昇順 (ASCEND キーワード)、降順 (DESCEND キーワード)、または順
序指定なし (キーワードを指定しない) にすることができます。
- 昇順または降順の文字配列の場合には、制御仕様書に ALTSEQ(*EXT) が指定さ
れた時に、代替照合順序が順序検査に使用されます。
コンパイル時に実際の照合順序
が不明の場合 (たとえば、制御仕様書またはコマンド・パラメーター
に SRTSEQ(*JOBRUN) が指定された場合) には、実行時に代替照合順序テーブル
が検索され、*INIT での初期化時に検査が行われます。 そうでない場合には、検査はコンパイル時に行われます。
- 図形および UCS-2 配列は、代替照合順序とは無関係
に、16 進数値によって分類されます。
- 定義仕様書の EXTFMT キーワードに L または R が指定された場合には、各要素に符
号 (+ または -) が含まれていなければなりません。 L が指定され、要素サイズが 2 の配列は、次の例に示されているように、ソース・デ
ータ中に 3 桁を必要とします。
*....+....1....+....2....+....3....+....4....+....5....+....6....+....*
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords++++++++++++++++++++
D UPDATES 2 0 DIM(5) PERRCD(5) EXTFMT(L) CTDATA
**CTDATA UDPATES
+37-38+52-63-49+51
- 浮動コンパイル時データは、浮動リテラルまたは数値リテラルとして
ソース・レコード内に指定されます。 4 バイト浮動として定義された配列の場合、各要素ごとに 14 桁必要
です。また、8 バイト浮動として定義された配列の場合は、各要素ごと
に 23 桁必要です。
- 図形データは、シフトアウトおよびシフトイン文字で囲まなければなり
ません。 図形データの複数の要素が (中間に図形データ以外のデータを持たない) 単一の
レコードに含まれている場合には、レコードには 1 セットのシフトアウトおよ
びシフトイン文字だけが必要です。 図形配列を図形配列以外の配列と一緒に交互形式で定義する場合には、図形
データをシフトインおよびシフトアウト文字で囲まなければなりません。
2 つの配列を交互形式で定義する場合には、各レコードに 1 セットのシフトインおよびシフトアウト文字だけが必要です。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.