U prethodnom prilogu bavili smo se statičkim i dinamičkim dimenzionisanjem nizova, a sada ćemo preći na dopunu definicije nizova jednom ili više dimenzija. Ponekad će vam zatrebati da smestite podatke u vidu – jedne liste unutar druge liste, na primer, lista podataka po mesecima unutar liste sa godinama:
Dim GodineIMeseci(1991 To 2000, 1 To 12) As String
Danas = 1995
Mesec = 5
GodineIMeseci(Danas, Mesec) = "5-ti mesec 1995."
Debug.Print GodineIMeseci(1995, 5)
U gornjem primeru, kreirali smo niz sa dve dimenzije. Za svaki element prve dimenzije, druga dimenzija sadrži po 12 elemenata. Ako imate potrebe, možete dodati još neku dimenziju; zamislite višedimenzionalne nizove kao seriju nizova koji u sebi sadrže nove nizove. Na primer, evo kako možete obezbediti smeštaj za 31 podatak (dani), za svaki mesec:
Dim GodineIMeseci(1991 To 2000, 1 To 12, 1 To 31) As String
Dodavanjem više dimenzija nizovima, javljaju se određeni problemi. Ako nizu dodamo više dimenzija, biće mnogo teže da ga adresiramo, jer će te svaki put kada koristite niz morati da obezbedite indeks za svaku od dimenzija. I još nešto, tip koji dodelite nizu primenjuje se na svaki element niza – što znači da će biti mnogo teže da kreirate liste kompleksnih podataka koji treba da budu različitih tipova. Na primer, možete kreirati niz „kupci“, sa elementima rezervisanim za „ime“, „adresu“, „starost“ i „račun“, ali ne možete dodeliti različite tipove podataka krajnjim elementima, što znači da je otežan rad sa podacima koji dolaze iz svakodnevnog života. Solucija koja nam preostaje u ovakvim slučajevima je da ne koristimo kompleksne, višedimenzionalne nizove, već seriju samostalnih nizova, po jedan za svaku stavku – sa određenim tipom podataka:
Dim Ime() As String
Dim Prezime() As String
Dim Starost() As Long
Dim Racun() As Currency
Kada je potrebno da adresirate ceo „slog“ (ime, prezime, starost i račun), radićete da svakim nizom pojedinačno. Ovo, takođe može biti komplikovano, i često može biti izvor grešaka (bugs).
Pratite Krstaricu na www.krstarica.com