Funkcje tablicowe:   ArrayRange()

Funkcja int ArrayRange() zwraca ilość elementów w wybranym wymiarze tablicy. Więcej informacji można znaleźć w specyfikacji MQL4.


Przykład 1

Przykład skryptu, który określa ilość elementów w jednowymiarowej tablice array[]. Należy pamiętać, że tablice w MQL4 mogą mieć maksymalnie 4 wymiary, numer pierwszego = 0, a czwartego = 3.

#property strict
void OnStart()
  {
//---
   double array[]   = {0.0, 1.1, 2.2}; // tablica jednowymiarowa
   int    rankIndex = 0;               // numer wymiaru tablicy

//--- określić ilość elementów
   int rangeArray = ArrayRange(array, rankIndex); // 3

//--- wyświetlić wynik
   Print("Tablica array w wymiarze nr ",rankIndex,
         " ma ",rangeArray," elementy.");
  }

Rys. 1. Przykład stosowania funkcji ArrayRange().


W przypadku próby określenia ilości elementów dynamicznego lub nieistniejącego wymiaru, funkcja zwróci 0 (przykład 2).


Przykład 2

Przykład skryptu, gdzie w 4-wymiarowej tablice pierwszy (0) wymiar jest dynamiczny. Próba określenia tego oraz piątego (4) wymiarów zwróciła wynik = 0.

#property strict
void OnStart()
  {
//---
   double array[][16][32][64]; // tablica czterowymiarowa

//--- określić ilości elementów odpowiednich wymiarów
   int rangeArray_0 = ArrayRange(array, 0); // 0, dynamiczny
   int rangeArray_1 = ArrayRange(array, 1); // 16
   int rangeArray_2 = ArrayRange(array, 2); // 32
   int rangeArray_3 = ArrayRange(array, 3); // 64

//--- próba określenia ilości elementów
//--- nieistniejącego wymiaru
   int rangeArray_4 = ArrayRange(array, 4); // 0

//--- wyświetlić wyniki
   Print("Tablica array posiada elementy:");
   Print("wymiar 0 (dynamiczny) = ",   rangeArray_0);
   Print("wymiar 1 = ",                rangeArray_1);
   Print("wymiar 2 = ",                rangeArray_2);
   Print("wymiar 3 = ",                rangeArray_3);
   Print("wymiar 4 (nieistniejący) = ",rangeArray_4);
  }

Rys. 2. Przykład stosowania funkcji ArrayRange().