Konu
:
ASP Öğrenmek İsteyenler Buraya............
Tekil Mesaj Gösterimi
25-03-2008, 15:37
#
2
(
permalink
)
•RΣΛLChΛoS•
Cevap: ASP Öğrenmek İsteyenler Buraya............
ASP‘nin Derinliklerine Doğru
Hemen hemen bütün dillerin birer derleyicisi vardır. Yani yazdığınız programı “ .exe ” ya da “ .dll ” haline getirmeden önce sınayabileceğiniz bir platform. Bu platform o kadar akıllıdır ki
yazım hatalarınızı veya hatalı kodlamalarınızı anında tespit eder ve size sormaya bile gerek duymadan anında düzeltir.
ASP kodları yazarken böyle bir şansınız maalesef yok. Kodlar zaten düz yazı metinlerinden oluşuyor ve direkt yorumlayıcı tarafından okunarak sonuç bize gösteriliyor.Kısacası ya doğru yazmışsınızdır
mantık hatası da yoksa kod sorunsuca çalışır; ya da bir yerlerde küçük bir şeyi yanlış yazmışsınızdır ve kodunuz çalışmaz. VBScript komutları
anahtar kelimeleri ve değişken adlarının büyük harf-küçük harf olması önemli değildir.
Örneğin ileride ayrıntılı bir şekilde göreceğimiz ‘for’ döngü deyimini aşağıdaki bütün şekillerde yazabiliriz.
For kisiSayisi= 1 To 6
FOR KISISAYISI=1 TO 6
for kisisayisi = 1 to 6
VBScript’çiler genellikle komutların birinci harfini büyük yaparlar: For gibi. Değişken adlarında ise kendinize anlamlı gelen bir biçim tutturabilir ve öyle devam edebilirsiniz.
Eğer bir kod satırı çok uzun geliyor ve daha sonra anlaşılması imkânsız derecede uzuyorsa
bu satırı alt çizgi (_) ile aşağı satırda devam ettirebilirsiniz. Örnek:
<%
If AdayNumarasi > 100 And _
AdayNumarasi < 199 Then
............................
%>
Bir de
<%
Response.write (“AdayNumarasi”)
%>
Yerine <%=AdayNumarasi%> yazılabilmesi vardır ki bu aslında bir yazım kuralı olmamakla beraber işlerimizi oldukça kolaylaştıracak bir özelliktir. Bir kod ne kadar kısa ve sade olursa o kadar güzel demektir. İçinden çıkılmaz ve karmaşık kodlamalardan ne kadar kaçınırsak hata yapma ihtimâlimiz de o kadar azalacaktır.
Değişim rüzgarının etkisinden bir türlü kurtulamayanlar: DEĞİŞKENLER
Programcılıkta işlemlerimizi değişkenlerle yaparız. değişkeni bir kap gibi düşünebilirsiniz. Sözgelimi “aylar
” değişkenin adı ise bu değişkenin değeri Ocak
Şubat
Mart
vs. olabilir. Her değişken
türüne göre
ya bir ya da daha fazla değer tutar. Adından da anlaşılacağı gibi değişkenin değeri değişir! Bu değişikliği biz yapabiliriz
programın kendisi de yapabilir.
VBScript’te
bir çok başka bilgisayar programlama dilinden farklı olarak değişkenlerin tanımlanması veya “beyan edilmesi”
“boyutlandırılması” gerekmez. Belirtilmemiş
önceden tanımlanmamış bir değişkene değer atamaya kalkarsanız
VBScript bunu mükemmel şekilde kabul eder. Fakat bu kötü bir programcılık örneğidir. İyi programcılık değişkenlerin önceden tanımlanmasını gerektirir. Bunu “DIM” komutuyla yaparız. DIM
Dimension (boyutlandır) kelimesinden kısaltılmıştır. Pek akıllıca görünmese de bu komut
bilgisayarın değişken yeri olarak bir bellek alanının boyutunu belirtmesini sağlar. Örnekler:
<%
DIM Gun
Ay
OgrenciAdi
OgrenciNo
Not
Gun = “Persembe”
Ay = “Mart”
OgrenciAdi = “Selim”
OgrenciNo = 1080 ‘sayısal tanımlamalarda tırnak işareti kullanmadığımıza dikkat edelim.
Not = 4
%>
Şimdi burada Gun
Ay
OgrenciAdi
OgrenciNo
Not adıyla beş değişken oluşturduğumuzu ve bunlara sırasıyla “Persembe”
“Mart”
“Selim”
“1080” ve “4” değerlerini atadığımızı görüyorsunuz. Bu noktada VBScript yorumlayıcısına sorsanız
“Peki
söyle bakalım. Gun değişkeninin değeri nedir?” Değişken isimleri
mutlaka harfle başlamalıdır; içinde noktalama işaretleri bulunamaz ve uzunluğu 255 karakteri geçemez.
Daha şimdiden kötü programcı olmayın !!!
ASP
sitemize giren bir ziyaretçiye bir oturum (Session) açar ve bazı değişkenleri oturum boyunca aklında tutar. Bir sayfada kullandığınız bir değişkeni
daha sonraki sayfada kullanabilmek için
bu değişkenin değerinin yeni sayfada değişmemesi gerekir. ASP programı yazarken
bazen gelişigüzel değişkenlere değer atayabilirsiniz. Neden? O anda aklınıza değişken adı olacak kelime gelmediği için! Bu değişken adını daha önce kullanmışsanız ve içinde biraz sonra kullanacağınız bir değer varsa
değer değiştirilmiş olacaktır. VBScript
savurgan ve dağınık programcılığı önlemek için OPTION EXPLICIT imkanını verir. Bir ASP sayfasının birinci satırı olarak
<% OPTION EXPLICIT %>
yazarsanız VBScript DIM komutuyla belirlenmemiş değişken kullanmanıza izin vermez; kullanırsanız hata verir ve durur.
Bu ifadenin işinize çok yarayacağı bir diğer nokta
kodda değişken adını yazarken hata yapmanızı önlemektir. VBScript sizin hata yaptığınızı bilemeyeceği için yanlış kelimeyi yeni bir değişken sayacaktır. Değer atamadığınız bu yeni değişkeni kullandığınız yerlerde ya programınız hata verir
ya da kendisine doğru görünen işlemler yapar; beklediğiniz sonucu elde edemezsiniz. OPTION EXPLICIT
yanlış yazdığınız değişkeni yeni değişken sayarak önceden tanımlanmamış değişken kullandığınızı düşünerek
duracaktır.
Peki
değişkenimizi tutup farklı bir şekilde tanımlarsak neler olur:
<%
DIM Gunler(31)
Aylar(12)
Ogrenciler(210)
Notlar(10)
%>
Bu yöntemle oluşturduğumuz değişkenler
aslında birer “havuz” olup birden fazla değer tutabilir. Yani:
<%
DIM Gunler(7)
Aylar(12)
Ogrenciler(21)
Notlar(10)
Gunler(1) = “Pazartesi”
Gunler(5) = “Cuma”
Aylar(10) = “Ekim”
Ogrenciler(12) = “Selim”
Notlar(4) = 4
Notlar(5) = 5
%>
Bu durumda içinde 7 ayrı değişken tutabilecek olan Günler değişkeninin 1 numaralı olanının değeri “Pazartesi”
5 numaralı olanının değeri ise “Cuma” olacaktır. Aynı şekilde 12 değer tutabilecek olan Aylar değişkeninin 10 numaralı olanının değeri “Ekim”
100 farklı değer tutabilecek olan Ogrenciler değişkeninin 12 numaralı olanının değeri “Selim” ve nihayet 10 ayrı değer tutabilecek olan Notlar değişkeninin 5 numaralı olanının değeri ise 5 olacaktır. Böyle
birden fazla değer tutabilen değişkenlere Dizi Değişken veya Array denir.
Dizi Değişkenler (Array fonksiyonu)
VBScript dili kullanılmaya hazır bir çok fonksiyon içerir. Bunlardan biri olan Array ile
kolayca dizi değişken oluşturabiliriz.
Diyelim ki
Aylar(12) dizi-değişkenini yıl içerisindeki ayların adları ile doldurarak oluşturmak istiyoruz:
<%
Dim Aylar = Array (“Ocak”
“Şubat”
“Mart”
“Nisan”
“Mayıs”
“Haziran”
“Temmuz”
“Ağustos”
“Eylül”
“Ekim”
“Kasım”
“Aralık” )
%>
şeklindeki satırlar ile hem dizi-değişkeni oluşturabiliriz; hem de değerlerini atayabiliriz.
Bu yapıda oluşturduğumuz dizi değişkenin üyelerini daha sonra sıra numaraları ile çağırabilirsiniz. Örneğin:
<%=Aylar(3)%>
bize Nisan’ı verir. Neden?
Çünkü hayatlarının büyük bölümünü bilgisayar başında ve havasız ortamlarda geçiren
çoğunlukla asosyal kişiler olan dil tasarımcıları
sayı saymaya biz normal insanlar gibi 1’den değil 0’dan başlarlar. Dolayısıyla
Aylar dizi-değişkeni Aylar(0)’dan başlar!
Burada aklınıza şu soru gelebilir: Dizi değişken oluşturacağımıza
neden “ogrenci1”
“ogrenci2”
“ogrenci3” ya da “Gunler1”
“Gunler2” diye değişkenler oluşturmuyoruz ve bunlara değerler atamıyoruz?
Her şeyden önemlisi dizi değişkenlerde bir değişkene numarasıyla atıfta bulunabilirsiniz. Numara yerine bir başka değişkeni kullanabilirsiniz. Örneğin
OgrenciNo değişkeninizin değeri 12 ise
<%
....
If Ogrenciler(OgrenciNo) = “Selim”
...
%>
şeklinde bir döngü ile aradığınız öğrencinin Selim olup olmadığını sınayabiliriz.
Başka programlama dillerine özellikle Visual Basic’e âşinâ olanların aklına şöyle bir soru gelebilir: “VBScript’te değişkenin metin mi
sayı mı olduğunu ayırt etmiyor muyuz?” Başka programlama dillerinde bir değişkenin değeri harf ve rakamlardan oluşuyorsa
yani matematik işlem yapmaya elverişli değilse bunlara String (Alfanümerik
karakter değerler
dizgi) denir. Programlama dillerinde bir de matematik işlem yapmaya elverişli değişken türü vardır: Sayı (Number). VBScript
bir değişkene alfanümerik (karakter
metin) olarak atadığınız değeri çift tırnak içine almanızı ister. Sözgelimi Kediler(12) değişkeni için Minnoş değerini atamak istiyorsunuz. Minnoş kelimesini çift tırnak içine almak zorundasınız. Sayı olarak kullanacağınız değerleri ise tırnak içine almazsınız. (Sayı olarak kullanacağınız değerlerin sadece rakam olabileceğini hepimiz biliyoruz!)
Fakat
işleri karıştıran nokta
VBScript açısından değişken türü diye bir şey olmamasıdır. Visual Basic
küçültülüp script dili haline getirilirken
değişken türü özelliği alınmayınca
ortaya işleri karıştıran (belki de oldukça kolaylaştıran) böyle bir durum çıkmış bulunuyor. Karışıklık
çift tırnak içinde verdiğiniz bir değeri matematik işlemde kullanmaya kalktığınızda karşınıza çıkabilir. Rakam olmayan bir karakter dizisini bir değişkene tırnaksız olarak atadığınızda VBScript “tanımsız değişken” vermeye kalktığınızı söyleyerek duracaktır.
VBScript’in bu eksikliğini gidermek için bazı ASP programcıları değişken adlarının önüne karakter dizileri için “str” harflerini koyarlar: strAy
strOgrenciler
strMailAdresi gibi.
İsterseniz
VBScript’in karakter-dizisi ve sayı değişkenleri nasıl ayırt ettiğini veya etmediğini bir kaç örnekle görelim. Şu kodu yazarak
çalıştıralım:
<% Option Explicit %>
<HTML>
<%
Dim Degisken(2)
Toplam
Degisken(1) = "Mustafa"
Degisken(2) = "Doğan"
Toplam = degisken(1) + Degisken(2)
%>
<% =Toplam %>
</HTML>
Sonuç: “MustafaDoğan” değil mi? (Arada boşluk olmamasını şimdilik önemsemeyelim.) Peki; şimdi Degisken(1) değeri olarak tırnak içine alarak 5
Degisken(2) değeri olarak yine tırnak içinde 10 yazın. Programı tekrar çalıştırın. Haydaa! Sonuç 510? Peki
tırnakları kaldırın. Sonuç? 15. Ne o? Bu dili tasarlayanların matematik bilmediklerini mi sandınız
Bu durum VBScript’in matematik bilgisinin kıtlığından değil
tırnak içindeki değerlerin
VBScript ayrım yapmıyor olsa bile
karakter dizgisi (string) iken toplama işleminde art arda eklenmesinden (concatenate) kaynaklanıyor. Tırnakları kaldırdığınızda
VBScript bu değerlerin sayı olduğunu anladı ve doğru işlemi
yani toplama işlemini yaptı. Şimdi VBScript’in değişkenleri ele alış tarzını daha iyi kavramak için Degisken(1) değeri olarak tırnak işareti koymadan kendi adınızı
Degisken(2) değeri olarak da soyadınızı yazın ve programı çalıştırın. Ne sonuç aldınız?
VBScript’in kullandığı tek tür değişkene variant denir. Variant
karakter-dizini (String) de olabilir
sayı (Number) da. Fakat bir variant’ın içindeki değer
veri olarak nitelendiğinde şu türlerden birine girer:
Boolean
Değişkenin değeri ya True (doğru) ya da False (yanlış) olur; True’nun değeri –1
False’un değeri ise 0’dır.
Byte
0 ile 255 arasında bir sayısal değer olabilir.
Double
Yüzen noktalı değer denilen veri türüdür. Pozitif sayılar için 4.9E-324 ile 1.8E308 arasında
negatif sayılarda -4.9E-324 ile -1.8E308 arasında bir değer alabilir.
Date/Time
Önceden belirlenmiş biçimlerde tarih ve zaman bilgisi içerir.
Empty
Tanımlanmış ancak henüz değer atanmamış (boş) değişken türüdür.
Error
Programın hata mesajlarını ve hata değerlerini tutar.
Integer
Noktalık bölüm içermeyen tamsayı verilerdir; değeri -32.768 ile +32.767 arasında olabilir.
Long
Noktalık bölüm içermeyen tamsayı verilerdir; değeri -2.147.483.648 ile 2.147.483.648 arasında olabilir.
¤¤¤¤
İçinde veri bulunmamak üzere tanımlanmış değişkenlerdir.
Object
Windows OLE Nesnelerini tutmak üzere tanımlanmış değişkenlerdir.
Single
Yüzen noktalı değer denilen veri türüdür. Pozitif sayılar için 1.4E-45 ile 3.4E38 arasında
negatif sayılarda –1.4E-45 ile -3.4E38 arasında bir değer alabilir.
String
Alfanumerik veri tutan değişkenlerin değeridir
Değişkenlere nispet
Değişmeyenler
Diyelim ki
bütün kodunuz boyunca kullanacağınız bir değişmez değeriniz var. Bu tip sabit bir değer. Bütün ASP sayfası boyunca (hatta isterseniz
bütün site
yani uygulama boyunca) değişmeden kalır. Bu değerleri Const (constant
sabit kelimesinden türetilme) komutuyla belirtiriz:
Const dolarBirimFiyat = 677000
Const KarsilamaMetni = “WELCOME...Web sitemize hoş geldiniz.”
Const UreticiFirma = “Sony Electronic”
VBScript’te İşlemciler (Operatörler)
Bilgisayar operatörü ile program operatörü arasında fazla bir fark yoktur. Her ikisi de verdiğiniz değerleri ya karşılaştırır bir sonuç bulurlar; ya da bu değerlerle aritmetik işler yapar ve bir sonuç ortaya çıkartırlar. Bilgisayar operatörü daha sonra bu iş için sizden para ister; program operatörü istemez. (Bilgisayarı edinebilmek için Türkiye şartlarında yeterince harcama yapıyorsunuz zaten!) VBScript’in operatörleri ve yaptıkları işler şöyle sıralanır:
Operatör:
İşlev:
Sınıfı:
+ Toplama Aritmetik
- Çıkartma
* Çarpma
/ Bölme
^ Üssünü alma
\ Tamsayı bölme
Mod Modüler aritmetik
= Bir değişkenin diğerine eşit olduğunu sınar Karşılaştırma
<> Bir değişkenin diğerine eşit olmadığını sınar
>and< Bir değişkenin diğerinden büyük veya küçük olduğunu sınar (and kelimesi var)
>= and <= Bir değişkenin diğerinden büyük veya eşit
veya küçük veya eşit olduğunu sınar (and kelimesi var)
Is Bir ifadedeki iki referansın aynı Nesne’ye yapılıp yapılmadığını sınar
And Bir veya daha fazla değişkeni test olarak karşılaştırır Mantıksal
Or Bir işlemin devamı için hangi koşulun oluşması gerektiğini sınar
Not Bir ifadeyi negatif hale getirir
XoR Sadece bir şartın doğru olup olmadığını sınar
Eqv İki değişkenin eşitliğini sınar
Imp İki ifadede mantıksal implikasyon işlemi yapar.
VBScript ile yazacağımız ASP sayfalarında bu işlemcileri beklediğimiz sonucu verebilmesi için kullanım sıraları önemlidir. Bunu bir örnekle açıklayalım: 100’den 6’yı çıkarmak ve sonucu 2’ye bölmek istiyorsunuz; sonuç 47 olacaktır. Yani
100-6/2; değil mi? Bu işlemin VBScript’teki sonucu 97 olacaktır. Çünkü
VBScript önce 6’yı 2’ye bölecek ve elde ettiği sonucu 100’den çıkartacaktır. VBScript’te
aritmetik işlemlerin yapılma sırası şöyledir:
Operatör: İşlev: Öncelik:
+ Toplama 3
- Çıkartma 3
* Çarpma 2
/ Bölme 2
^ Üssünü alma 1
VBScript ile hesap işlemi yaparken
aritmetik işlem sırasını karıştırarak hatalı sonuç almamak için sık sık paran¤¤¤ kullanmak yerinde olur. Yukarıdaki örnek şöyle yazılabilirdi: (100-6)/2. Tabiî amacınız 100’ü 6/2’ye bölmek ise bu işlemi şöyle yazmalısınız: 100-(6/2).
BAŞ DÖNDÜREN KODLAR!
Bir programın amacı ve büyük ölçüde varlık sebebi (ister basit bir script diliyle
ister gerçek programlama diliyle yazılsın)
karşısına çıkabilecek veya ona yönlendirilecek çeşitli durumları değerlendirerek
kendisine izin verilen çizgiler içerisinde kendi kendine kararlar verebilmesidir. Bu noktada dizginleri elimizde tutabilecek yegâne kişiler olarak biz
programcılar
program kontrol öğelerini kullanırız. Programlar
bu öğeler sayesinde karşılaştırma yaparlar; belirli durumların oluşup oluşmadığını tahlil ederler. Ya da
belirli bir durumun oluşmasına veya sona ermesine bağlı olarak bir iş yaparlar veya yapmazlar. Kısacası
karar verirler. Bunu sınamalarla (şartlı ifadelerle) veya döngülerle sağlarız.
Örneğin
programımıza istediğimiz bir şart yerine gelene kadar hep aynı şeyi yapmasını söyleyebiliriz; yani
döngüye sokarız. Şartımız sağlandığında döngüye son verip bir sonraki adıma geçmesini sağlayabiliriz. Kimi zaman da
programa (programın mantığı çerçevesinde) istediğimiz anda yapmakta olduğu işi durdurarak
başka bir işi yapmasını bildirebiliriz. Bunlara da süreçler (veya prosedürler) denir.
VBScript’te programın kendi kendine karar vermesini sağlayan en basit yapı
“Eğer...ise...yap!” şeklinde karşımıza çıkar. Bu yapıyı kullanmak için değişik VBScript komutları vardır.
IF...ELSE
Bu yapı belki de en eski ve en klişe mantıksal analiz yapısıdır. Hemen hemen bütün diller de bu şekilde kullanılıyor olması da cabası...
Bu komut
VBScript’in vereceğiniz bir durumun bulunup bulunmadığını sınamasını sağlar. Genel yazım kuralı şöyledir:
If şart Then
[şart doğru ise yapılacak işler]
Else
[şart doğru değilse yapılacak işler]
End If
Bunu bir örnekle ifade edelim: Eğer saat 12’den önce ise sayfaya “Günaydın” yazdır. Ayrıca sayfanın arka plan rengini “açık mavi” yap; saat 12’den sonra ise “Tünaydın” yazdır ve arka plan rengini değiştir. Saat 18’den sonra ise sayfaya “İyi akşamlar!” yazdır; ayrıca
arka plan rengini siyah yap.
If
döngüsü kendi içinde sınırsız
Elseif
(ikinci şartlı döngü) imkânı vererek bize bunu sağlar. Her
Elseif
’i yeni bir
If
gibi düşünebilirsiniz. Bu pek de gerekli olmayan faaliyeti gerçekleştirmek için gerekli olan kod:
<HTML>
<HEAD>
<TITLE>
ASP ILE SAATE GORE SELAM
</TITLE>
<META http-equiv=
"content-type"
content=
"text/html; charset=ISO-8859-9"
>
<META http-equiv=
"Content-Type"
content=
"text/html; charset=windows-1254"
>
</HEAD>
<CENTER>
<h2>
<font color=
"#FFFFFF"
>
<! -- birinci durum-->
<%
If Hour(Now) <12 Then
Response.write "Günaydın !!"
Response.Write "<body bgcolor='#0066CC'>"
%>
<! -- ikinci durum-->
<%
ElseIf Hour(Now) >= 18 Then
Response.Write "İyi akşamlar! "
Response.Write "<body bgcolor='#000000'>"
%>
<! -- üçüncü durum-->
<%
Else
Response.Write "Tünaydın! "
End If
Response.Write "<body bgcolor='#FF9900'>"
%>
</font>
</H2>
</CENTER>
</HTML>
Burada dikkat edeceğimiz hususlar;
• “Response.write” metodu ile sadece sayfanın metin kısmı ile uğraşmakla kalmayıp
sayfanın diğer unsurlarını da değiştirebilirsiniz.Mesela biz burada arka plan rengini değiştirdik.
• Response.write “<body bgcolor=’#000000’>” yazarak sayfanın body etiketini kendi istediğimiz şekilde oluşturmuş olduk. Sizce buradaki süreç nasıl işliyor? Kod işlenmeye başlandığında ve bu satıra gelindiğinde sayfanın içerisine o satır yazılıyor. Web tarayıcısına saf html kodları halinde ulaşan sayfamız
bu defa tarayıcı tarafından işlenmeye başlıyor. Bir de bakıyor ki ASP kodu tarafından sayfanın içine yazılan şey
aslında bir tag.görevi. Bu sefer hemen onu işliyor ve sonucu bize gösteriyor.
Bu programı çalıştırdığınız zaman
çalıştırdığınız saate göre sayfadaki selamın ve arka plan renginin değiştiğini göreceksiniz. (Bu örnekte
sadece şartlı döngü işlemi yapmıyoruz; fakat aynı zamanda
Hour(Now)
fonksiyonu ile tanışıyoruz ve sayfadaki bütün unsurları ASP yöntemiyle yazdırıyoruz! Fakat şimdilik bu iki unsurun üzerinde durmayın.)
Daha önceki yazılarımızda asp’nin bir sürü hazır fonksiyonu var demiştim.
Bunlardan biri de o andaki saati ve tarihi bildiren
Now()
fonksiyonudur. Bu fonksiyondan dönen değerle bu andaki saati öğreniyoruz; bunu önce 12 ile karşılaştırıyoruz. Fonksiyondan dönen değer
eğer 12’den küçükse
programımız
Response
(Karşılık) Nesnesi’nin
.Write
Metodu’nu kullanarak (Nesneler ve Metodlar meselesi üzerinde de durmayın!) ziyaretçinin Browser penceresine “Günaydın” yazdırıyor.
Değer döndürenler...
Fonksiyonlar
kendilerini göreve çağıran VBScript komutlarına ve işlemlerine mutlaka bir sonuç döndürerek karşılık verirler. Buna fonksiyondan dönen değer denir. Yani
Now()
fonksiyonunu göreve çağırdığınızı farzedelim. Bu fonksiyon derhal işletim sisteminden saati ve tarihi öğrenerek kendisini göreve çağıran işleme bildirir. Daha sonra VBScript’in kullanılmaya hazır diğer bir çok fonksiyonunu kullanacağız ve kendi fonksiyonlarımızı yazacağız. Ne zaman bir fonksiyona bir noktada atıf yaparsak
o noktaya fonksiyon tarafından bir değer getirileceğini bilmemiz gerekir.
Eğer bu ilk sınamanın sonucu doğru değilse
VBScript
If
satırından sonraki birinci deyimi atlayacak ve ikinci deyimi yerine getirecektir. Yani eğer saat 12’den küçük değilse
ElseIf
satırı icra edilecektir.
ElseIf
de tıpkı
If
gibi işlediği için bu kez yeni bir sınav yapılacak ve saatin 18’e eşit veya büyük olup olmadığı sınanacaktır. Eğer saat 18’e eşit veya büyükse
(sınav sonucu doğru ise) ilk satır icra edilecek ve ziyaretçinin Browser penceresine “İyi akşamlar!” yazdırılacak
background rengi değiştirilecektir. Eğer bu sınavın sonucu da doğru değilse
ElseIf
’in ikinci satırı icra edilecektir. Bu satırda ise
Else
bulunuyor.
Else;
If
ve
ElseIf
gibi sınav yapmaz; ne olursa olsun
kendisinden sonra gelen deyimi yerine getirir. Yani saat 12’den küçük değilse
18’den küçük veya 18’e eşit değilse
yani 12 ile 17 arasında ise
ekrana “Tünaydın” yazılacaktır ve rengi değiştirecektir.
SELECT CASE
VBScript’in bir diğer duruma bakarak karar verme ifadesi
Select Case
(Durum Seç) yapısıdır. Şimdi bu öğenin nasıl çalıştığını görelim:
Durum Seç (Durumların listesi veya durumları belirten bir değişken)
Durum 1 : Yapılacak işler
Durum 2: Yapılacak işler
Durum 3: Yapılacak işler
Durum n: Yapılacak işler
Seçmeyi Bitir
Yani;
Select Case değişken
Case 1
--- yapılacak işler ---
Case 2
--- yapılacak işler ---
Case3
--- yapılacak işler ---
End Select
VBScript
verdiğiniz durum listesine veya içinde çeşitli değerler bulunan (bu değerleri bir şekilde değişkene yükleyecek olan sizlersiniz) değişkene bakarak
bu değişkenin her bir değerini bir “durum” sayacak ve verdiğiniz durumlardan hangisini tutuyorsa
ona ait komut dizisini icra edecektir.
Bir örnekle görelim:
<%
ay = month(date())
gun = day(date())
sene = year(date())
Select Case ay
Case "1"
StrAy = "Ocak"
Case "2"
StrAy = "Şubat"
Case "3"
StrAy = "Mart"
Case "4"
StrAy = "Nisan"
Case "5"
StrAy = "Mayıs"
Case "6"
StrAy = "Haziran"
Case "7"
StrAy = "Temmuz"
Case "8"
StrAy = "Ağustos"
Case "9"
StrAy = "Eylül"
Case "10"
StrAy = "Ekim"
Case "11"
StrAy = "Kasım"
Case "12"
StrAy = "Aralık"
End Select
%>
<html>
<head>
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=windows-1254"
>
<meta name=
"GENERATOR"
content=
"Microsoft FrontPage 4.0"
>
<meta name=
"ProgId"
content=
"FrontPage.Editor.Document"
>
<title>
Günün Tarihi
</title>
</head>
<body>
<p><font face=
"Verdana"
size=
"2"
><b>
Günün Tarihi
</b></font>
:
<font color=
"#800000"
>
<%=gun%>
<%=strAy%>
<%=sene%>
</font></p>
</body>
</html>
Bu kodu yazıp çalıştırdığımızda programımız üç tane farklı değişkeni işleme sokuyor. Bunlar ay
gün ve sene. Malum
bu değişkenler
kendilerine bir değer atandığında bir işe yararlar. Bu yapmak içinde VBScriptin hazır fonksiyonlarından olan
month(date())
day(date())
year(date())
ifadelerini kullanıyoruz.Aslında bunlar
Date() fonksiyonunun alt fonksiyonları. Daha sonra kendisine değer yüklenen ay değişkeni Select case ifadesinde durum konumuna yerleştiriliyor. Bu şu demek: “Ey asp.dll
ay değişkenini al
bu değişkenin değişik durumlarına göre aşağıda belirteceğim görevleri yerine getir!” Ay değişkeninin 1
2
3
4
5
6
7
8
9
10
11
12 olmasına göre farklı durum işlevleri tanımlıyoruz. Tahmin edeceğiniz üzere bunu case “1”
case “2”
... ifadeleri ile yapıyoruz. Bu sayede ay değişkeninin aldığı sayısal değere göre birer StrAy değişkeni tanımlayabiliyoruz. Bu işlemleri tamamladıktan sonra End Select komutu ile seçim işlemini durduruyoruz.
•RΣΛLChΛoS•
Üyelere Açık Profil Bilgileri
•RΣΛLChΛoS• - Özel Mesaj gönder
•RΣΛLChΛoS•´nin Web Sitesini ziyaret edin
•RΣΛLChΛoS• - Daha fazla mesajını bul