Tekil Mesaj Gösterimi
Eski 25-03-2008, 15:37   #2 (permalink)
•RΣΛLChΛoS•
 
•RΣΛLChΛoS• - ait Avatar
•RΣΛLChΛoS• - ICQ üzerinden Mesaj gönder •RΣΛLChΛoS• - AİM üzerinden Mesaj gönder •RΣΛLChΛoS• - MSN üzerinden Mesaj gönder •RΣΛLChΛoS• - YAHOO üzeri ndenMesaj gönder
Tanımlı 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%>&nbsp;<%=strAy%>&nbsp;<%=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 aygü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 123456789101112 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• isimli üyemiz çevrimdışıdır. (Offline)   Alıntı ile Cevapla