VecSet

 

ベクトル項目にデータを格納

ベクトル項目の指定したセルのデータを更新します。

構文:

VecSet(ベクトル項目、セルインデックス、値)

パラメータ:

  • ベクトル項目 …… ベクトル項目を表すシンボル名。VARリテラルが必要です。

  • セルインデックス …… データを更新するセルのインデックス

  • …… 更新する値

戻り値:

論理値 …… 処理に成功した場合「True」が返ります。

以下の場合、処理が失敗します。

  • ベクトル項目でない場合

  • セルインデックスが負の場合

例:

VecSet('B'VAR,1,'a')

 

項目B の最初のセルに「a」を設定します。

注意事項:

  • ベクトル項目以内のx番目のセルに値を設定する必要がある場合、セルxに値を入力し、次にすべてのセルを更新することを推奨します。これによって、(値が新しいセルに追加されるたびに、メモリーを割り当てる代わりに)すぐにメモリーをベクトルに割り当てられます。

  • ベクトルの配分は、そのサイズに依存します。

  • 998番目のセルに値がない場合でも、VecSet関数のセルインデックスで"999"を指定した場合、999番目にセルを割り当てます。

  • ベクトルのポインターをNULL()関数で更新することで、ベクトルの割当てを取り消すことができます。

  • ベクトルの終端(たとえば、1000セルを持つベクトルから最後の500セル)を解放する方法はありません。

  • NULL()関数で更新すると、全ベクトル全体が消去されます。

  • NULLでベクトルを更新しても、メモリーに即反映される訳ではありません。この種の更新は、無効なポインターを残し、ガーベージコレクターはメモリーを解放する必要があります。さらに、OSは、プロセスのサイズをすぐに減らすことはないでしょう。ベクトルを使用して動作することは、メモリテーブルを使用して動作することと同じようになります。同じ説明は、Magic xpaのBLOB項目のメモリ処理にも当てはまります。
    つまり、セルの値を0またはNULLで更新したとしてもl、メモリの消費量を減らすことができません。ベクトルは完全に解放される必要があります、その際、OSもメモリ解放のタイミングで役割を担います。

関連トピック:

ベクトルデータ