Bir programda degisken çok önemlidir.
Degiskenler, degisen degeri tutarlar. Mesela degiskenin adi Aylar
ise, bu degiskenin degeri "Ocak, Subar, Mart..." diye giden aylar
olacaktir. Degiskenler, türlerine göre bir ya da daha fazla deger
tutabilirler. Adi üstünde, degisken, her zaman degisir.. Bu
degisikligi biz de yapabiliriz, program da yapabilir.
Degiskenlerin tanimlanmasi "DIM" komutu ile yapilir. DIM,
dimension "boyutlandir" kelimesinin kisaltilmisidir. Tanimlayacagimiz
degisken adinin önüne Dim yazariz. Mesela:
<%
Dim Ay, Gun, Sayi, Isim
Ay = "Ocak"
Gun = "Pazartesi"
Sayi = 3
Isim = "Seren"
%> |
Burada önce degiskenlerimizi tanimladik. Birden fazla da
degiskenimiz olabilir. Bunun için degiskenlerin arasina virgül
koyarak yapariz. Degisken isimlerimizde Türkçe karakter kullanmamaya
özen göstermeliyiz. Degisken isimleri mutlaka harfle baslamalidir,
içinde noktalama isaretleri bulunamaz ve uzunlugu 255 karakteri
geçemez. Zaten 255 karakterden uzun bir degisken de isimizi
zorlastirir diye düsünüyorum:)
Degiskenlerin isimlerini belirledikten sonra onlara bazi degerler
atadik. Ay isimli degiskenimizin degeri "Ocak" oldu. Buna göre
VBScript yorumlayicisina, "VBScript yorumlayicisi kardes, Ay
degiskeninin degeri nedir?" diye sordugumuzda, "Bunu bilmeyecek ne
var? Ocak'tir" diyecektir.
Simdi söyle bir degisken tanimladigimizi düsünelim, acaba ortaya
nasil bir degisken çikar? :
<%
Dim Aylar(12), Gunler(31), Isimler(10)
%> |
Bu yöntemle olusturdugumuz kodlarla elde edilecek "kaplar," birden
fazla deger tutabilir:
<%
Dim Aylar(12), Gunler(7), Isimler(10)
Aylar(5) = "Mayis"
Gunler(2) = "Sali"
Isimler(8) = "Hasan"
%> |
Bu durumda, içinde 12 ayri degisken tutabilecek olan Aylar
degiskeninin 5 numarali degeri "Mayis", 7 deger tutabilecek olan
Gunler degiskeninin 2 numarali degeri "Sali" ve 10 deger tutabilecek
olan Isimler degiskeninin 8 numarali degeri "Hasan" olacaktir. Böyle,
birden fazla deger tutabilen degiskenlere Dizi Degisken veya Array
denir.
| |
Array
Fonksiyonu
VBScript' in kullanima hazir bir çok fonksiyounu vardir,
bunlardan biri olan Array ile kolayca dizi degisken
olusturabiliriz.
Örnegin, Gunler(7) dizi-degiskenini isimler ile doldurmak
istiyoruz:
<%
Dim Isimler = Array ("Pazartesi", "Sali", "Çarsamba",
"Persembe", "Cuma", "Cumartesi", "Pazar")
%> |
Böylece hem
dizi degiskeni olusturabiliriz, hem de degerlerini
atayabiliriz. Buna göre daha sonra dizi degiskenin üyelerini
sira numarasi ile çagirabiliriz:
bize "Cumartesi"
degerini verir. Neden mi? Çünkü dil tasarimcilari, sayi saymaya
biz dünyalilar gibi 1' den degil de 0' dan baslarlar.
Dolayisiyla Gunler dizi degiskeni Gunler(0)' dan baslayacaktir.
|
VBScript, bir degiskene alfanümerik (karakter, metin) olarak
atadigimiz degeri çift tirnak içine almanizi ister. Sayi olarak
kullanacagimiz degerleri ise tirnak içine almazsiniz. Fakat isleri
karistiran nokta, VBScript açisindan degisken türü diye bir sey
olmamasidir. Visual Basic, script dili haline getirilirken, degisken
türü özelligi alinmayinca, ortaya isleri karistiran ya da
kolaylastiran böyle bir durum çikiyor. Bu sizin kafanizi
karistirmasin. Sadece islemlerde dikkat etmemiz gereken bir kaç nokta
var.
Bazi ASP programcilari, bu eksikligi gidermek için degisken adlarinin
önüne karakter dizileri için "str" harflerini koyarlar: strAy,
strGunler, gibi.
Daha iyi anlamak için bir örnek yapalim. islem.asp adi ile
kaydedelim:
<html>
<%
Dim Degisken(2), Toplam
Degisken(1) = "Seren"
Degisken(2) = "Sah"
Toplam = Degisken(1) + Degisken(2)
%>
<%= Toplam %>
</html> |
|
Bu sayfayi çalistirdiginizda sayfaya SerenSah yazildi degil mi?
(Arada bosluk olmayisina aldirmayin. Daha sonra görecegiz.) Simdi
Degisken(1)' in degeri olarak "Seren" yerine tirnak içinde 3, Sah
degeri yerine yine tirnak içinde 10 yazin. Simdi sayfayi tekrar
açalim. Sonuç? 310 degil mi? Simdi tirnaklari kaldirin 3 ve 10 ' un
çevresinden. Sonuç? Dogru sonuç aldiginizdan eminim. Sayilarin
çevresinden tirnak isaretlerini kaldirinca VBScript bunlarin sayi
oldugunu anladi ve islemi ona göre yapti.
Degiskenleri ve degismeyenleri ögrendiysek simdi Islemcilere
geçebiliriz :) |