Pole Arrays
Co jsou pole Pole je uspořádaná entice stejných datových prvků Prvkem může být například číslo, řetězec nebo uživatelem definovaný typ Jednotlivé prvky pole je možné vyhledávat pomocí jejich pořadových čísel v jednotlivých rozměrech – indexů Indexy obvykle začínají nulou
Jak se deklarují Základní deklarace je pomocí příkazu DIM Uvedený příklad vytvoří pole o 3 řádcích a 4 sloupcích – matici s indexy 0 až 2 a 0 až 3 Pole je možné vytvořit pomocí funkce Array Tento příklad vytvoří 1-rozměrné pole s položkami 10, 28, 45 a 11 – index 0 až 3 DIM(3,4) as Integer Základní pole o 5 prvcích nadefinujeme takto: Dim Pole5(5) As Byte Potom máme prvky Pole5(0) až Pole5(4). Můžeme zadat i úplnou deklaraci a určit si od jakého indexu má pole začínat. Dim Pole5(1 To 5) As Byte Potom máme prvky Pole5(1) až Pole5(5) Potřebujeme-li změnit rozsah pole za běhu, musíme použít příkaz REDIM. Dim Pole() As Byte ReDim Pole(1 To 5) Používá se hlavně pokud nevím, kolik prvků pole budu potřebovat. Chcete-li pole plnit z kódu, máte v podstatě dvě možnosti:. 1. Použít pole jako řetězec s oddělovačem položek a potom pomocí Split a Join převést text na pole. O této možnosti budeme hovořit dále. 2. Použít pro deklaraci příkaz ARRAY Plnění pomocí příkazu Array je velmi jednoduché. Nejprve si nadeklarujete proměnou typu Variant a té pak pomocí Array vložíte data. Dim MyArray As Variant MyArray=Array("Noc","Den") A = Array (10, 28, 45, 11)
Indexy Index je celé číslo, které určuje, který prvek pole je vybírán Je to pořadové číslo prvku v určitém rozměru pole Defaultně je index v rozsahu od 0 do (počet_prvků – 1) Rozsah indexů lze explicitně definovat Příkaz DIM MyMatrix (1 to 5, 4 to 9, 3 to 5) as Integer vytvoří DIM MyMatrix (1 to 5, 4 to 9, 3 to 5) as Integer
REDIM Potřebujeme-li změnit rozsah pole za běhu, musíme použít příkaz REDIM Používá se hlavně pokud nevíme, kolik prvků pole budu potřebovat. Dim Pole() As Byte ReDim Pole(1 To 5)
SPLIT Funkce Split vytvoří z textu s oddělovačem pole. Z řetězce "ráno,poledne,večer" můžeme udělat pole právě pomocí SPLIT. Parametry: Zdroj dat s oddělovačem = Nějaký text s čárkami oddělovač = znak, který odděluje položky v řetězci limit = kolik prvků načíst.Standardně nastaven na -1 (všechny) SPLIT(Zdroj dat s oddělovačem, oddělovač , limit)
JOIN Opakem SPLIT je funkce JOIN – vytvoří z pole text s oddělovačem. Parametry: Pole – název pole, které se má sloučit Oddělovač – defaultně čárka limit = kolik prvků načíst.Standardně nastaven na -1 (všechny) Join(Pole, oddělovač , limit)
UBOUND a LBOUND Pro práci s poli jde použít pro dotaz na nejnižší a nejvyšší prvek pole funkce: UBound vrátí nejvyšší index pole, LBound naopak nejnižší. Když nevíme, kolik položek pole má, tak UBound (POLE) As Long LBound (POLE) As Long For i=LBound(Pole) To UBound(Pole)
Příklad použití