|
Sık Kullanacağımız Hazır
Fonksiyonlar Dizi-Değişken (Array)
Fonksiyonu
VBScript'in dizi-değişken oluşturmada Array() fonksiyonu
ile sağladığı kolaylıklara kısaca değindik. Fakat Array ile
daha bir çok iş yapabiliriz; ve dizi değişken oluşturmakta
VBScript'in diğer bazı kolaylıklarından yararlanabiliriz.
Dizi-değişkenler, özellikle Web ziyaretçilerimizden gelecek
bilgilerin kaydedilmesinde; veritabanından çekeceğimiz verilerin
kullanılır hale getirilmesinde yararlı bir araçtır. Dolayısıyla ASP
sayfalarınızda sık sık çok-boyutlu dizi değişkenlerden
yararlanacaksınız. Bunun için gerekli araçları kısaca ve topluca ele
almamız yerinde olur.
Bir dizi değişken oluştururken, değişkenin eleman sayısını
belirtmezsek, VBScript, kendi kendine "Anlaşılan bu diziyi dinamik
yapmamı istiyorlar!" der; ve daha sonra elemanlarının değerleri
sonradan belirtilebilecek ve eleman sayısı sonradan arttırılabilecek
bir dinamik dizi-değişken oluşturur. ("VBScript iyi huyludur," demiş
miydim?) Örnek:
Bu komutla, Ogrenciler dizi-değişkeni oluşturulur; ancak eleman
sayısı belirtilmediği için dizi dinamiktir; yani daha sonra bu
dizinin eleman sayını belirleyebilirsiniz. Bunu:
gibi bir komutla yapabiliriz. Şimdi aklınıza şu soru gelebilir:
Peki neden Ogrenciler dizisini baştan eleman sayısını belirterek
tanımlamıyoruz? Güzel soru! Cevabı şu olabilir mi?
Dizi-değişkenimizin eleman sayısını henüz bilmiyoruz; ve programın
akışı içinde bu sayı, başka bir fonksiyonun, Sub'ın veya
kullanıcı girdisinin sonucu olarak belirlenebilir. Fakat hemen
belirtmek gereken bir nokta var: ReDim komutu, mevcut bir
dizi-değişkenin içindeki herşeyi siler! Mevcut dizinin elemanlarını
ve onların değerlerini korumak istiyorsak:
|
|
ReDim Preserve
Ogrenciler(20) |
yazmamız gerekir. Buradaki Preserve (koru) komutu,
VBScript'e mevcut dizi içindeki elemanları korumasını, ve eleman
sayısını 20'ye çıkartmasını bildirir. Buna neden gerek olabilir?
Ziyaretçinin tercihleri değişebilir; örneğin bir elektronik
alışveriş sitesinde ziyaretçiniz yeni şeyler alabilir; daha önceki
alışverişlerine ilişkin verileri tuttuğunuz dizi-değişkenin eleman
sayısını, daha önceki bilgileri silmeden arttırmanız gerekir.
VBScript'in dizi-değişkenlerini tümü aynı adı taşıyan bir liste
olarak düşünebilirsiniz; sadece değişken adının yanında dizinin
kaçıncı elemanı olduğunu belirten sayı bulunur:
|
|
Ogrenciler(1):
Necip Ogrenciler(2): Serap Ogrenciler(3):
Neslihan |
Fakat VBScript çok boyutlu dizi değişken de oluşturabilir. İki
boyutlu dizi-değişkeni tablo gibi düşünün; dizinin elemanları aynı
adı taşıyan değişkenler fakat bu kez sadece tek sayı değil sıra ve
sütun numaraları 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 |
Şimdi, burada üç sıralı, üç sütunlu bir tablo getirebilirsiniz
gözünüzün önüne. Bu dizi-değişkeni şu komutla oluşturabiliriz:
Böyle bir değişkende sözgelimi birinci sıra (numarası 1,x
olanlar) çalışkanları, ikinci sıradakiler (2,x'ler) daha az
çalışkanları vs., belirtebilir. VBScript, üç, dört ve hatta beş
boyutlu dizi-değişken oluşturur. Ama bunu nerede kullanacağınızı siz
kararlaştırabilirsiniz. Bir dizi-değişkenin herhangi bir elemanın
değerini, programın herhangi bir aşamasında değiştirebilirsiniz:
|
|
Ogrenciler(3,2) =
"Caner" |
komutu, Hande'nin adını siler ve yerine Caner'in adını yazar.
Dizi-değişkenlerimizin eleman sayısını bilmek isteyebiliriz. Kimi
zaman dizi-değişkenlerimizin eleman sayısı biz belirlemeyiz; bu
bilgi bir formdan gelebilir; bir veritabanından alınabilir; fakat
mesela bir döngü için bu değişkenin kaç elemanı olduğunu bilmek
gerekir. Örneğin elimizde 35 elemanı olan Ogrenciler dizi-değişkeni
varsa, bu sayıyı
|
|
ElemanSayisi =
UBound(Ogrenciler) |
komutu ile ElemanSayisi değişkenine yazdırırız. ElemanSayisi'nin
değeri bu durumda 35 olacaktır.
|