値を配列に設置 ArrayFill 関数

関数

配列関数

ArrayFill 関数

この関数は、指定した値を配列に設置します。

ArrayFill関数が呼び出されると、通常のインデックス付け方向 (左から右) が常に暗示されます。ArraySetAsSeries関数を使用した配列要素へのアクセス順序の変更は無視されることになります。

ArrayFill関数で処理すると、多次元配列は 1次元として表示されます。たとえば、array[2][4]は array[8]として処理されます。従って、この配列を操作する時は、初期要素のインデックスを 5に指定することができます。

ゆえに、array[2][4] に対する ArrayFill(array, 5, 2, 3.14) の呼び出しは、array[1][1] および array[1][2] 要素に 3.14を設置することになります。

データ型と構成・戻り値

void ArrayFill(①, ②, ③, ④);

戻り値は無し。

引数 [4]

ArrayFill関数は 4個の引数で構成されます。


引数名データ型単位初期値説明
array[]void&単純型( char、uchar、short、ushort、int、uint、long、ulong、bool、color、datetime、float、double )の配列。
startint開始インデックス。
countint設置する要素の数。
valuevoid設置する値。

使用例

ArrayFill関数による配列への値の設置

配列へ値を設置するコードです。ArrayFill関数は、既に配列に値がある場合は、値を置き換えることになります。

コード

// ArrayFill関数による配列への値の設置
#property strict
void OnInit() {

int i,j;

int arr1[]={1,2,3};      // 1次元配列
ArrayResize(arr1,3);     // 1次元配列サイズの設定
ArrayFill(arr1,0,2,123); // 2個「123」を設置
ArrayFill(arr1,2,1,456); // 1個「456」を設置

for(i=0;i<3;i++) {
   Print("arr1[",i,"]=", arr1[i]);
}

int arr2[][3];           // 2次元配列
ArrayResize(arr2,2);     // 1次元配列サイズの設定
ArrayFill(arr2,0,3,123); // 1番目の配列に3個「123」を設置
ArrayFill(arr2,3,3,456); // 2番目の配列に3個「456」を設置

for(i=0;i<2;i++) {
   for(j=0;j<3;j++) {
      Print("arr2[",i,"][",j,"]=",arr2[i][j]);
   }
}   
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

タイトルとURLをコピーしました