【MQL4勉強プログラミング】ArrayBSearch()関数で一次元配列の中から指定した値を検索!

ザフナーラボブログ

ArrayBSearch()関数は、一次元配列の中から指定した値を検索するために使用します。

ArrayBSearch()関数は、以下のように定義されています。

  • double型の配列の中から指定した値を検索する場合
    int ArrayBSearch(
    const double& array[],
    double value,
    int count=WHOLE_ARRAY,
    int start=0,
    int direction=MODE_ASCEND
    );
  • float型の配列の中から指定した値を検索する場合
    int ArrayBSearch(
    const float& array[],
    float value,
    int count=WHOLE_ARRAY,
    int start=0,
    int direction=MODE_ASCEND
    );
  • long型の配列中から指定した値を検索する場合
    int ArrayBSearch(
    const long& array[],
    long value,
    int count=WHOLE_ARRAY,
    int start=0,
    int direction=MODE_ASCEND
    );
  • int型の配列中から指定した値を検索する場合
    int ArrayBSearch(
    const int& array[],
    int value,
    int count=WHOLE_ARRAY,
    int start=0,
    int direction=MODE_ASCEND
    );
  • short型の配列中から指定した値を検索する場合
    int ArrayBSearch(
    const short& array[],
    short value,
    int count=WHOLE_ARRAY,
    int start=0,
    int direction=MODE_ASCEND
    );
  • char型の配列中から指定した値を検索する場合
    int ArrayBSearch(
    const char& array[],
    char value,
    int count=WHOLE_ARRAY,
    int start=0,
    int direction=MODE_ASCEND
    );

各引数の意味は、以下のとおりです。

  • array[]
    値を検索する配列の配列名を指定します。
  • value
    配列の中から検索したい値を指定します。
  • int count=WHOLE_ARRAY
    検索する配列の要素数を指定します。
    指定しない場合は、すべての要素について検索します。
  • int start=0
    検索を開始する要素のインデックスを指定します。
    指定しない場合は、最初(=インデックス「0」)から検索します。
  • int direction=MODE_ASCEND
    検索する方向を指定します。
    「MODE_ASCEND」:昇順
    「MODE_DESCEND」:降順
    指定しない場合は昇順となります。

戻り値

検索した値に付された要素のインデックスが返されます。

検索した値が配列の中から見つからなかった場合は、検索した値に最も近い値に付された要素のインデックスが返されます。

注意点

値を検索する配列はソートされたものでなければなりません。

配列をソートするためには、ArraySort()関数(詳細は「こちら」を参照してください。)を使用します。