Funkcja int ArrayRange() zwraca ilość elementów w wybranym wymiarze tablicy. Więcej informacji można znaleźć w specyfikacji MQL4.
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 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().