バージョン 4.2.5
 —  エディタ  —

配列とテーブルの定義

配列定義機能を使用して、配列のオカレンスおよびレイアウトを定義します。

配列定義はフィールドコマンド .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

次の項目を指定できます。

フィールド 説明
Top Dim 配列の最上位の次元を指定します。つまり、(左から右に)1 次元、2 次元、および 3 次元での最高オカレンスです。

プログラムで定義されたフィールドがマップ配列を定義するために使用される場合、プログラムで定義されている、そのフィールド(ユーザー定義変数またはデータベースフィールド)の上限が使用されます。これらは配列定義画面で上書きすることはできません。

他の Natural オブジェクトのデータ定義からマップ配列を選択する場合は、そのマップ配列の次元が、このフィールドに表示されている次元を超えないようにする必要があります。

データ定義からマップ配列を選択しない場合は、そのマップ配列の次元が、Natural プログラムで定義されている次元を超えないようにする必要があります。

Dimensions 配列は 3 次元まで保持できます。 配列の次元をマップレイアウトにマップする順序は、[Index]オペランドの左側に入力された値によって決まります。
Occurrences 1 次元に対して定義されるオカレンス数。
Starting from 1 次元に対する開始インデックス値。 実際の値がマップ定義を呼び出す Natural プログラムで提供されることを示すために、数値を使用することも、変数名を使用することもできます。

変数が定義されず、マップのフィールドとして定義されている場合は、Natural データフォーマット/長さ N7 とみなされます。 このような場合、[Field and Parameter Definition]画面で PF9 キーを使用すると値を編集できます。

注意:
配列から[Starting from]値を削除することは、変数がマップフィールドではない場合、または他のマップフィールドに[Starting from]値またはヘルプパラメータとして関連付けられていない場合、マップからも変数が削除されることを意味します。 [Starting from]値を編集するには、[Field and Variable Definitions - Summary]画面で PF9 キーを押します。

Spacing 各次元のオカレンス間に挿入する空行(垂直方向の次元)または空列(水平方向の次元)の数。

配列定義の例

例 1:

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   
  

例 2:

水平方向の配列となること以外は「例 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   
  

例 3:

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   
  

例 4:

次元の順序が逆であること以外は「例 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   
  

例 5:

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   
  

例 6:

[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   
  

例 7:

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

Top of page

テーブル定義

すべてが同じマップの行で始まる 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 個のオカレンスすべてがテーブルに拡張されています。

テーブルレイアウト:

テーブルは、次の特性を備えた配列のコレクションとして定義されます。

Top of page