Funkcja void ArrayFill() wypełnia tablicę określoną wartością liczbową. Tablica może być typu liczby całkowitej , liczby zmiennoprzecinkowej , logicznego , koloru , daty i czasu . Więcej informacji można znaleźć w specyfikacji MQL4.
Przykład skryptu, gdzie najpierw utworzono jednowymiarową tablicę array[], zawierającą 5 elementów o wartościach 0.1. Pierwsze 3 elementy, tj. od indeksu 0 do 2, wypełniono wartością 2.2.
#property strict
void OnStart()
{
//---
double array[] = {0.1, 0.1, 0.1, 0.1, 0.1}; // tablica
int startPos = 0; // indeks elementu początkowego
int count = 3; // ilość elementów
double value = 2.2; // wartość
//--- wypełnić tablicę
ArrayFill(array, startPos, count, value);
//--- wyświetlić wynik
for(int i = 0; i < 5; i++)
Print("array[",i,"] = ",array[i]);
}
Rys. 1. Przykład stosowania funkcji ArrayFill().
Tablica wielowymiarowa traktowana jest przez funkcję ArrayFill() jako tablica jednowymiarowa. Na przykład dwuwymiarowa tablica array[2][4] zostanie przetworzona jako tablica jednowymiarowa array[8].
#property strict
void OnStart()
{
//---
double array[2][4] =
{
{0.0, 0.1, 0.2, 0.3},
{1.0, 1.1, 1.2, 1.3}
};
/* wypełnić tablicę od elementu z indeksem 5
kolejne 2 elementy wartością 555.5 */
ArrayFill(array, 5, 2, 555.5);
//--- wyświetlić wynik
for(int i = 0; i < 2; i++)
for(int j = 0; j < 4; j++)
Print("array [",i,"] [",j,"] = ",array[i][j]);
}
Rys. 2. Przykład stosowania funkcji ArrayFill().
Jeśli trzeba całą tablicę zainicjować jedną określoną wartością, należy zastosować funkcję ArrayInitialize() .