配列と4D言語

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 6.0


配列は、4Dの変数です。他の変数と同様、配列にもスコープがあり、4D言語のルールに従いますが、いくつか他の変数とは異なる点があります。

ローカル、プロセス、インタープロセス配列


ローカル、プロセス、インタープロセス配列を作成して使用できます。次に例を示します:

   ARRAY INTEGER ($aiCodes;100) ` 100個の2バイト整数値でローカル配列を作成
   ARRAY INTEGER (aiCodes;100) ` 100個の2バイト整数値でプロセス配列を作成
   ARRAY INTEGER (<>aiCodes;100) ` 100個の2バイト整数値でインタープロセス配列を作成

これらの配列のスコープは、他のローカル、プロセス、インタープロセス変数のスコープと同じです。

ローカル配列

ローカル配列は、配列の名前をドル記号 ($) で始めることによって宣言されます。

ローカル配列のスコープは、それが作成されたメソッド内です。メソッドが終了すると配列も消去されます。2つの異なるメソッドにある同じ名前のローカル配列は、実際にはスコープの異なる2つの別の変数なため、それぞれに異なるタイプを指定できます。

フォームメソッド、オブジェクトメソッド、またはこれらのメソッドによってサブルーチンとして呼び出されるプロジェクトメソッドの中でローカル配列を作成する場合、配列はフォームメソッドまたはオブジェクトメソッドが起動されるたびに作成され消去されます。つまり、配列はフォームイベントごとに作成され消去されます。したがって、目的が表示であれ印刷であれ、ローカル配列をフォームに使用することはできません。

ローカル変数のように、可能な限りローカル配列を使用することをお勧めします。そうすることにより、多くの場合、アプリケーションを実行するために必要なメモリの量を小さくできます。

プロセス配列

プロセス配列は、配列名を文字で始めることによって宣言されます。

プロセス配列のスコープは、それが作成されたプロセス内です。配列は、プロセスの終了時またはアボート時に消去されます。プロセス配列には、プロセスごとに1つのインスタンスが自動的に作成されます。したがって、配列はプロセスのどこでも同じタイプです。ただし、その内容はプロセスによって異なります。

インタープロセス配列

インタープロセス配列は、配列名を<>で始めることによって宣言されます。

インタープロセス配列は、データベース全体で使用することができ、すべてのプロセスで共用されます。これらの使用は、プロセス間でのデータの共有や情報の転送のみに限る必要があります。

Tip: インタープロセス配列が複数のプロセスによってアクセスされ、それが衝突するおそれがあると予測できる場合、その配列へのアクセスをセマフォによって保護します。詳細については、Semaphore 関数の例題を参照してください。

Note: プロセス配列とインタープロセス配列をフォームの中で使用して、スクロールエリアやドロップダウンリスト等のフォームオブジェクトを作成できます。

配列を引数として受け渡し


配列を引数として4Dコマンドや4Dプラグインのルーチンに渡すことができます。しかし、配列をパラメータとしてメソッドに渡すことはできません。代わりに、配列へのポインタを引数としてメソッドに渡すことはできます。詳細については、配列とポインタを参照してください。

配列の他の配列への代入


テキストや文字列変数とは異なり、配列を他の配列に代入することはできません。配列を他の配列にコピー(代入)するには、COPY ARRAYコマンドを使用します。

参照

配列, 配列とポインタ.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次