GET ステートメントの詳細については、GET ステートメントを参照してください。
データ・リストを使用するときは、各データ・リスト項目は要素変数、配列変数、または構造変数でなければなりません。 データ・リスト内の名前に添え字が付いていてはなりませんが、修飾された名前を使用することはできます。 ストリーム内のすべての名前は、データ・リストに現れている必要があります。 ただし、名前の順序は同じである必要はなく、 またデータ・リストはストリーム内にない名前を含むことができます。
データ・リスト内の名前がストリーム中にない場合は、その名前を持つ変数の値は変りません。
データ・リスト内にない名前や識別不能な要素変数がストリーム中にあると、NAME 条件が起こります。
セミコロン (引用符で囲まれていないもの) またはファイルの終わりが認識されると、伝送が終了し、 データ・リストの指定の有無に関係なく、そのステートメントで実際に伝送されたエレメント割り当ての数が判別されます。
たとえば、次のデータ・リストを考えてみましょう。 A、B、C、 D はそれぞれ要素変数の名前です。
Data (B, A, C, D)
このデータ・リストを、次のような入力データ・ストリームに関連付けたとします。
A= 2.5, B= .0047, D= 125, Z= 'ABC';
この場合、C は、データ・リスト内に書かれていますが、ストリーム中にはあ りません。したがって、C の値は変わりません。 Z はデータ・リスト内に書かれていないので、NAME 条件が起こります。
データ・リスト内に配列名を書く場合、添え字付きの名前をデータ・リスト内に 書くことはできませんが、ストリーム中にはその配列の添え字付き参照があって もかまいません。 配列全体がストリーム内に現れる必要はありません。実際にストリーム内に現れるこれらのエレメントのみが割り当てられます。 添え字が範囲外であるか、欠落しているときは、NAME 条件が起こります。
以下に例を示します。
declare X (2,3);
このとき、下記のデータ・リストと入力データ・ストリームについて考えてみましょう。
データ・リストには配列名しか書いていませんが、入力ストリームには配列の個々のエレメントの値を入れることができます。 この場合は、3 つのエレメントのみが割り当てられます。配列のその他の部分は変更されません。
データ・リスト内に構造体、小構造体、または構造体エレメントの名前を書く場合、 データ・リスト内では完全に修飾する必要はありませんが、ストリーム中には完全修飾名を入れなければなりません。 以下に例を示します。
dcl 1 In,
2 Partno,
2 Descrp,
2 Price,
3 Retail,
3 Whsl;
In.Price.Retail の中に値を読み込むときは、入力データ・ストリ ームは次のフォーマットになっていなければなりません。
In.Price.Retail=1.23;
データ指定は、次のうちのどれでもかまいません。
data(In) data(Price) data(In.Price) data(Retail) data(Price.Retail) data(In.Retail) data(In.Price.Retail)