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 2ReDim Godine(3 To 100)
Debug.Print LBound(Godine); UBound(Godine)
‘Odstampace se 3 i 100ReDim 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