配列定義機能を使用して、配列のオカレンスおよびレイアウトを定義します。
配列定義はフィールドコマンド .A
で開始するか、または行コマンド ..E
を発行して開始します。その後、目的のフィールドをファンクションコード A
でマークします。
複数の配列のオカレンスおよびレイアウトを同時に定義するには、テーブル定義機能を使用します。 この配列は同じマップの行から始まる必要があります。
テーブル定義は行コマンド ..A
で呼び出します。
このセクションでは、次のトピックについて説明します。
配列を定義する場合は、上部に次のような画面が表示されます。
Name #001 Top Dim 1__________ 1__________ 1__________ ------------------------------------------------------------------------------- Dimensions Occurrences Starting from Spacing 0 . Index vertical 1__ ___________ 0 Lines 0 . Index horizontal 1__ ___________ 1 Columns 0 . Index (h/v) V 1__ ___________ 0 Cls/Ls 001 --010---+----+----+---030---+----+----+---050---+----+----+---070---+---- .AXXXXX Please enter starting name .AXXXXXXXXXXXXXXXXXXX Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Mset Exit -- - + < > Let |
次の項目を指定できます。
10 個の垂直方向のオカレンスから構成される 1 次元配列。各オカレンス間に 2 つの空行が挿入されています。
Name #001 Top Dim 10_________ 1__________ 1__________ ------------------------------------------------------------------------------- Dimensions Occurrences Starting from Spacing 1 . Index vertical 10_ ________ 2 Lines 0 . Index horizontal 1__ ________ 1 Columns 0 . Index (h/v) V 1__ ________ 0 Cls/Ls |
水平方向の配列となること以外は「例 1」と同じです。
Name #001 Top Dim 10_________ 1__________ 1__________ ------------------------------------------------------------------------------- Dimensions Occurrences Starting from Spacing 0 . Index vertical 1__ ________ 0 Lines 1 . Index horizontal 10_ ________ 1 Columns 0 . Index (h/v) V 1__ ________ 0 Cls/Ls |
2 次元配列。 最初の次元は 10 個の垂直方向のオカレンスから構成されています。各オカレンス間に 1 つの空行が挿入されています。 2 つ目の次元は 5 個の水平方向のオカレンスから構成されています。各オカレンス間に 2 つの空列が挿入されています。
Name #001 Top Dim 10_________ 5__________ 1__________ ------------------------------------------------------------------------------- Dimensions Occurrences Starting from Spacing 1 . Index vertical 10_ ________ 1 Lines 2 . Index horizontal 5__ ________ 2 Columns 0 . Index (h/v) V 1__ ________ 0 Cls/Ls |
次元の順序が逆であること以外は「例 3」と同じです。
Name #001 Top Dim 5_________ 10__________ 1__________ ------------------------------------------------------------------------------- Dimensions Occurrences Starting from Spacing 2 . Index vertical 10_ ________ 1 Lines 1 . Index horizontal 5__ ________ 2 Columns 0 . Index (h/v) V 1__ ________ 0 Cls/Ls |
3 次元配列。 最初の次元は 3 個の垂直方向のオカレンスから構成されています。各オカレンス間に 1 つの空行が挿入されています。 2 つ目の次元は 5 個の水平方向のオカレンスから構成されています。各オカレンス間に 2 つの空列が挿入されています。 3 つ目の次元は 2 個のオカレンスから構成され、最初の次元の各オカレンス内に垂直方向に展開されています。
Name #001 Top Dim 3__________ 5__________ 2__________ ------------------------------------------------------------------------------- Dimensions Occurrences Starting from Spacing 1 . Index vertical 3__ ________ 1 Lines 2 . Index horizontal 5__ ________ 2 Columns 3 . Index (h/v) V 2__ ________ 0 Cls/Ls |
[Starting from]の使用例。 最初の次元はインデックス I
から始まる 10 個の垂直方向のオカレンスから構成されています。 I
は、デフォルトでは Natural データフォーマット/長さ N7 でマップエディタに定義されています。 2 つ目の次元はインデックス 3 から始まる 5 個の水平方向のオカレンスから構成されています。
Name #001 Top Dim 10_________ 5__________ 1__________ ------------------------------------------------------------------------------- Dimensions Occurrences Starting from Spacing 1 . Index vertical 10_ I_______ 1 Lines 2 . Index horizontal 5__ 3_______ 2 Columns 0 . Index (h/v) V 1__ ________ 0 Cls/Ls |
1 次元配列から 2 次元表示を作成する例。 配列は 40 個の要素から構成されています。 それぞれ 20 行ある 2 列に表示されます。 このためには、水平方向インデックスとして 0 を指定します。
Name #001 Top Dim 40_________ 1__________ 1__________ ------------------------------------------------------------------------------- Dimensions Occurrences Starting from Spacing 1 . Index vertical 20_ ________ 0 Lines 0 . Index horizontal 2__ ________ 10 Columns 0 . Index (h/v) V 1__ ________ 0 Cls/Ls |
すべてが同じマップの行で始まる 1 つ以上の配列のテーブルは、..A
行コマンドを使用して定義します。 ..A
行コマンドを入力すると、次の画面が呼び出されます。
14:41:47 ***** NATURAL MAP EDITOR ***** 2007-10-22 - Array Table Definition - Main Index: Vert. Occur. 1 Starting from ___________ Spacing 0 Lines Second Index: Direction(H/V) V ___________ 0 Cls/Ls Third Index: Direction(H/V) V ___________ 0 Cls/Ls ------------------------------------------------------------------------------- Name of Variable Col Dimension Size Order 2. 3. (truncated) Pos Ind1 Ind2 Ind3 M S T Occ Occ ------------------------------------------------------------------------------- #001 2 1 1 1 #002 25 1 1 1 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Mset Exit -- - + Let |
注意:
..A
コマンドではなく .A
コマンドで定義された配列に ..A
コマンドを適用すると、これらの配列が変更または破壊される場合があります。
上記の画面例には、次のフィールドが含まれています。
フィールド | 説明 |
---|---|
Main Index | 垂直方向のオカレンス数、開始位置、および各次元のオカレンス間でスキップされる行の数。 |
Second Index | 方向(水平または垂直)、開始位置、および各次元のオカレンス間でスキップされる行/列の数。
2 つ目の次元は、配列の 1 つが 2 以上の次元を持つ場合のみ適用されます。 この場合、2 つ目の次元は水平方向または垂直方向に表示できます。水平方向に表示する場合は、選択したすべてのオカレンスの行に十分なスペースが必要です。垂直方向に表示する場合は、行間隔を含め、1 つ目の次元と 2 つ目の次元を掛けた数のオカレンスを表示するための十分な行がマップに必要です。 |
Third Index | 方向(水平または垂直)、開始位置、および各次元のオカレンス間でスキップされる行/列の数。
3 つ目の次元は、配列の 1 つが 3 以上の次元を持つ場合のみ適用されます。 この場合、3 つ目の次元は水平方向または垂直方向に表示できます。水平方向に表示する場合は、選択したすべてのオカレンスの行に十分なスペースが必要です。垂直方向に表示する場合は、行間隔を含め、1 つ目の次元と 2 つ目の次元と 3 つ目の次元を掛けた数のオカレンスを表示するための十分な行がマップに必要です。 |
Name of Variable | テーブルに格納されているフィールド配列の名前がすべて表示されます。 |
Col Pos | フィールドが配置される列の位置。 情報提供の目的のみで表示されます。 |
Dimension Size | 配列の上限[Ind1]、[Ind2]、および[Ind3]。
マップに定義された配列の次元は、そのマップを呼び出す Natural オブジェクトに定義された対応する配列の次元を超えないようにする必要があります。 |
Order | 次元が定義される順序。[M]、[S]、および[T]は Main、Second、および Third に対応します。 |
2. Occ. | 2 番目のインデックスに定義されるオカレンス数。 |
3. Occ. | 3 番目のインデックスに定義されるオカレンス数。 |
これは、次のプログラム定義に対応したマップフィールドを定義する例です。
DEFINE DATA 1 ARRAY1 (A3/1:10) 1 ARRAY2 (A5/1:10,1:2) 1 ARRAY3 (A7/1:10,1:2,1:3) END-DEFINE
14:41:47 ***** NATURAL MAP EDITOR ***** 2006-07-24 - Array Table Definition - Main Index: Vert. Occur. 1 Starting from ___________ Spacing 0 Lines Second Index: Direction(H/V) V ___________ 0 Cls/Ls Third Index: Direction(H/V) V ___________ 0 Cls/Ls ------------------------------------------------------------------------------- Name of Variable Col Dimension Size Order 2. 3. (truncated) Pos Ind1 Ind2 Ind3 M S T Occ Occ ------------------------------------------------------------------------------- ARRAY1 3 10 1 1 1 ARRAY2 32 10 2 1 1 2 2 ARRAY3 58 10 2 3 1 2 3 2 3 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Mset Exit -- - + Let |
ARRAY1
は 1 次元配列で、オカレンス数は 10 です。 最初の 2 オカレンスがテーブルに拡張されています。
ARRAY2
は 2 次元配列です。 最初のインデックスが 10 個のオカレンスで構成され、2 番目のインデックスが 2 個のオカレンスで構成されます。 最初のインデックスの始めの 2 個のオカレンスおよび 2 番目のインデックスの両方のオカレンスがテーブルに拡張されています。
ARRAY3
は 3 次元配列です。 最初のインデックスが 10 個のオカレンス、2 番目のインデックスが 2 個のオカレンス、および 3 番目のインデックスが 3 個のオカレンスで構成されます。 最初のインデックスの始めの 2 個のオカレンス、2 番目のインデックスの両方のオカレンス、および
3 番目のインデックスの 3 個のオカレンスすべてがテーブルに拡張されています。
テーブルは、次の特性を備えた配列のコレクションとして定義されます。
1 つ目のインデックスのオカレンス数は、テーブルの各配列で同じである必要があります。 1 つ目のインデックスは常に垂直方向に拡張されます。
特定のインデックスのすべての要素は同じ行に配置されます。 このため、特定のインデックスの要素間の間隔は、次元が最も大きい配列によって決まります。