VBScriptin dizi degisken olusturmada Array() fonksiyonu ile sagladigi kolayliklara kisaca degindik. Fakat Array ile daha bir çok is yapabiliriz ve dizi degisken olusturmakta VBScriptin diger bazi kolayliklarindan yararlanabiliriz. Dizi degiskenler, özellikle Web ziyaretçilerimizden gelecek bilgilerin kaydedilmesinde; veritabanindan çekecegimiz verilerin kullanilir hale getirilmesinde yararli bir araçtir. Dolayisiyla ASP sayfalarinizda sik sik çok boyutlu dizi degiskenlerden yararlanacaksiniz. Bunun için gerekli araçlari kisaca ve topluca ele almamiz yerinde olur. Bir dizi degisken olustururken, degiskenin eleman sayisini belirtmezsek, VBScript, kendi kendine Anlasilan bu diziyi dinamik yapmami istiyorlar! der. Daha sonra elemanlarinin degerleri sonradan belirtilebilecek ve eleman sayisi sonradan artirilabilecek bir dinamik dizi degisken olusturur.
Dim Ogrenciler()
Bu komutla, Ogrenciler dizi degiskeni olusturulur. Ancak, eleman sayisi belirtilmedigi için dizi dinamiktir. Daha sonra bu dizinin eleman sayini belirleyebilirsiniz. Bunu,
ReDim Ogrenciler(15)
gibi bir komutla yapabiliriz. Simdi akliniza su soru gelebilir: Peki neden Ogrenciler dizisini bastan eleman sayisini belirterek tanimlamiyoruz? Güzel soru! Cevabi su olabilir mi? Dizi degiskenimizin eleman sayisini henüz bilmiyoruz. Programin akisi içinde bu sayi, baska bir fonksiyonun, subin veya kullanici girdisinin sonucu olarak belirlenebilir. Fakat hemen belirtmek gereken bir nokta var: ReDim komutu, mevcut bir dizi degiskenin içindeki herseyi siler! Mevcut dizinin elemanlarini ve onlarin degerlerini korumak istiyorsak:
ReDim Preserve Ogrenciler(20)
yazmamiz gerekir. Buradaki Preserve (koru) komutu, VBScripte mevcut dizi içindeki elemanlari korumasini ve eleman sayisini 20ye çikartmasini bildirir. Buna neden gerek olabilir? Ziyaretçinin tercihleri degisebilir. Örnegin, bir elektronik alisveris sitesinde ziyaretçiniz yeni seyler alabilir. Daha önceki alisverislerine iliskin verileri tuttugunuz dizi degiskenin eleman sayisini, daha önceki bilgileri silmeden arttirmaniz gerekir.
VBScriptin dizi degiskenlerini tümü ayni adi tasiyan bir liste olarak düsünebilirsiniz; sadece degisken adinin yaninda dizinin kaçinci elemani oldugunu belirten sayi bulunur:
Ogrenciler(1): Necip
Ogrenciler(2): Serap
Ogrenciler(3): Neslihan
Fakat VBScript çok boyutlu dizi degisken de olusturabilir. Iki boyutlu dizi degiskeni tablo gibi düsünün. Dizinin elemanlari ayni adi tasiyan degiskenler fakat bu kez sadece tek sayi degil sira ve sütun numaralari ile belirleniyorlar:
Ogrenciler(1,1): Necip
Ogrenciler(1,2): Serap
Ogrenciler(1,3): Neslihan
Ogrenciler(2,1): Selim
Ogrenciler(2,2): Murat
Ogrenciler(2,3): Merve
Ogrenciler(3,1): Elif
Ogrenciler(3,2); Hande
Ogrenciler(3,3): Leyla
Simdi, burada üç sirali, üç sütunlu bir tablo getirebilirsiniz gözünüzün önüne. Bu dizi-degiskeni su komutla olusturabiliriz:
Dim Ogrenciler(3,3)
Böyle bir degiskende sözgelimi birinci sira (numarasi 1,x olanlar) çaliskanlari, ikinci siradakiler (2,xler) daha az çaliskanlari belirtebilir. VBScript, üç, dört ve hatta bes boyutlu dizi degisken olusturur. Bunu nerede kullanacaginizi siz kararlastirabilirsiniz.
Bir dizi degiskenin herhangi bir elemanin degerini, programin herhangi bir asamasinda degistirebilirsiniz:
Ogrenciler(3,2) = Caner
komutu, Handenin adini siler ve yerine Canerin adini yazar.
Dizi degiskenlerimizin eleman sayisini bilmek isteyebiliriz. Kimi zaman dizi degiskenlerimizin eleman sayisi biz belirlemeyiz. Bu bilgi bir formdan gelebilir; bir veritabanindan alinabilir. Ancak, mesela, bir döngü için bu degiskenin kaç elemani oldugunu bilmek gerekir. Elimizde 35 elemani olan Ogrenciler dizi-degiskeni varsa, bu sayiyi
ElemanSayisi = UBound(Ogrenciler)
komutu ile ElemanSayisi degiskenine yazdiririz. ElemanSayisinin degeri bu durumda 35 olacaktir.