Visual Basic – Dimenzionisanje i manipulacija nizovima (III deo)

Kada vrลกite dimenzionisanje ili redimenzionisanje niza uz pomoฤ‡ jedne brojke, moลพete kreirati niz ฤiji je indeks najveฤ‡eg elementa isti kao broj koji vam je potreban. Na primer, element MojNiz(10) spada u elemente iz gornjeg dela, ali ovaj niz ima u stvari 11 elemenata poลกto je podrazumevano da je kod Visual Basic nizova inicijalni indeks 0 (nula). Ovakav naฤin indeksiranja (sa poฤetnom nulom) moลพete izbeฤ‡i na dva naฤina. Prva tehnika se oslanja na izraz Option Base. Ako ลพelite da svi nizovi u jednom modulu poฤinju od jedinice, a ne od nule, ubacite sledeฤ‡u liniju na vrh sekcije deklaracija (Declarations):


Option Base 1

Veฤ‡ina programera ne ฤini niลกta po ovom pitanju, i time ลพrtvuje neiskoriลกฤ‡eni prostor – posebno ako imaju potrebu za nizovima ฤiji indeks startuje od nule, ali i za onim koji startuju od jedinice. Mada, moramo i to da kaลพemo da je Option Base izraz popriliฤno zastareo, jer je nastao u vremenu hroniฤnog nedostatka memorije, kada nije bilo druge alternative.

Druga tehnika je bolja alternativa – taฤnije, ovom metodom se ne odreฤ‘uje samo gornja granica indeksa, veฤ‡ i gornja i donja granica:


ReDim Godine(1 To 2) As Long
Debug.Print LBound(Godine); UBound(Godine)
‘Odstampace se 1 i 2

ReDim Godine(3 To 100)
Debug.Print LBound(Godine); UBound(Godine)
‘Odstampace se 3 i 100

ReDim Godine(200)
Debug.Print LBound(Godine); UBound(Godine)
‘Odstampace se 0 i 200


Ovde smo iskoristili dve ugraฤ‘ene funkcije (LBound i UBound) koje vraฤ‡aju najmanju i najviลกu vrednost indeksa nekog niza.

Obezbeฤ‘ivanje obe granice niza iziskuje malo viลกe posla pri kreiranju nizova, ali ฤ‡e vam kasnije sigurno uลกtedeti mnogo vremena. Od ovoga moลพete imati posebne koristi, jer ฤ‡e vam funkcionisanje nekih nizova biti mnogo jasnije. Pogledajte sledeฤ‡i kod:


Dim Godine(9) As String
Danas = 1985
Godine(Danas – 1981) = "Godina je 1985"
Debug.Print Godine(4)

U ovom iseฤku kreirali smo niz od deset ฤlanova, sa indeksima od 0 do 9. Kada treba da pristupimo elementu niza, podatku vezanom za 1985. godinu (element sa indeksom 4), moramo da oduzimamo ovu vrednost od 1981. Uporedite prethodni kod sa sledeฤ‡im programskim kodom, gde smo niz ograniฤili i sa gornje, i sa donje strane:


Dim Godine(1981 To 1990) As String
Danas = 1985
Godine(Godine) = "Godina je 1985"
Debug.Print Godine(1985)

Ovaj kod je mnogo jednostavniji za pisanje, lakลกi za razumevanje, i mnogo lakลกi za odrลพavanje, posebno u velikim aplikacijama.

Pratite Krstaricu na www.krstarica.com