Tekil Mesaj gösterimi
Alt 17 Mart 2007, 20:35   #2
Çevrimdışı
telNET
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: ASP Anlatımı (Dökümandır)




VBSCRİPT’E GİRİŞ
Bu kitapçıktaki örneklerimizi VBScript diliyle yazacağımıza göre, önce hızlı bir VBScript kursu görsek iyi olur. Visual Basic dilini biliyorsanız, VBScript biliyorsunuz sayılır. VBScript, güçlü bir dildir; ancak Netscape firmasının hiç bir zaman Browser’ında istemci tarafında çalıştırılabilecek diller arasında kabul etmemesi sebebiyle VBScript, Web’in istemci tarafında kendisinden bekleneni yapamadı. MS’un Browser’ı Internet Explorer ise VBScript ile yazacağınız İstemci-Tarafı kodları okuyabilir ve icra edebilir.
Ne var ki ASP kodlarımız hiç bir zaman ziyaretçinin Browser’ının yüzünü göremeyeceği ve sadece Server’da çalışacağı için Server’da VBScript desteği bulunduğu sürece, ASP sayfalarınızı VBScript ile yazabilirsiniz. Bir Server’da ASP desteği varsa, VBScript desteği de var demektir.
VBScript’in hemen hemen bütün komutlarını ve yöntemlerini ASP’de kullanabilirsiniz. Ancak bunun bir kaç kısıtlaması vardır. VB veya VBScript’e ASP dışında aşina iseniz, mesaj kutusu (MsgBox) ve girdi kutusu (InputBox) aracılığı ile programlarınıza kullanıcının bilgi girmesini sağlayabileceğinizi biliyorsunuz demektir. Bu iki komutu ASP içindeki VBScript kodunda kullanamayız. Ayrıca ASP teknolojisi zaten VBScript’in bütün komutlarını ve deyimlerini kullanmanızı da gerekli kılmayacaktır. Göreceksiniz ki, mükemmel ASP sayfaları oluşturmak için bile bir avuç VBScript komutu kullanacağız.
ASP sayfalarımızdaki HTML kodları ile VBScript (veya diğer Script dillerinin) kodlarını birbirinden ayırmamız gerekir. Bu ASP.DLL’ye, HTML’in nerede bittiğini, Script diliyle yazılmış kodun nerede başladığını g&#246;sterebilmemiz i&#231;in gerekli. Bunu sağlamak i&#231;in Script diliyle yazılmış herşeyi “<%” ve “%>” işaretleri arasına alırız. ASP.DLL bu işaretleri g&#246;r&#252;nce, i&#231;indekileri “yazmak” yerine “yapar.” Bir ASP sayfanızda HTML’in klasik “<” ve “>” işaretleri arasındaki unsurlar, ASP.DLL tarafından ziyaret&#231;iye g&#246;nderilecek olan sayfaya aynen aktarılır; ancak “<%” ve “%>” arasındaki herşey, başta belirttiğiniz LANGUAGE etiketinde yazılı Script dilinin yorumlayıcısına verilir; yorumlatılarak, gereği yerine getirilir.
“<%” ve “%>” işaretlerine “sınırlayıcı” denir. Sınırlayıcının i&#231;inde bir veya daha &#231;ok satır kod bulunabilir. Sınırlayıcılar ve i&#231;indeki Script, HTML etiketlerinin i&#231;inde veya dışında yer alabilir. Sınırlayıcının i&#231;indeki kodlarımızı a&#231;ıklamak i&#231;in koyacağımız yorum satırlarının başına tek tırnak işareti (') koyarız. İşte bu kuralları uyguladığımız bir ASP sayfası &#246;rneği:
<% @LANGUAGE=VBscript %>
<html>
<head>
<title>Hoşgeldiniz!</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>
<body>
<center>
<%
' Yazı tipi boyutunu tutacağımız bir değişken tanımlayalım
Dim fontBoyut
%>
<%
' yazı tipi boyutunu 1'den 7'ye kadar değiştirelim
For fontBoyut = 1 To 7
%>
<font size = <%=fontBoyut%>>
Hoşgeldiniz!<br>
<% Next %>
</center>
<h3>Bug&#252;n <% =WeekdayName(Weekday(Date)) %>, <% = Date %>.
Şu anda Server'da saat: <% = Time %>.<p>
</h3>
</body>
</html>
Burada sınırlayıcı arasında tek veya &#231;ok satırlı VBScript kodları ile başında tek tırnak olan icra edilmeyen, yorum satırlarını g&#246;r&#252;yorsunuz. HTML etiketinin i&#231;ine g&#246;m&#252;lm&#252;ş VBScript kodu ise HTML’in <FONT> etiketinde yer alıyor: <font size = <%=fontBoyut%>>. Burada karşılaştığımız “<%=” ifadesi, ASP’ye, “Bu değişkenin değerini bul ve tam buraya yaz!” dememizi sağlıyor. Bu ifade daha sonra yakından ele alacağımız Response.Write metodunun kısaltılmış halidir. HTML etiketinin i&#231;ine yazdığımız VBScript b&#246;l&#252;m&#252;n&#252;n kendi sınırlayıcı işaretlerinin yine de kullanıldığına dikkat edin.
Bir iki yazım kuralı
VBScript komutları, anahtar kelimeleri ve değişken adlarının b&#252;y&#252;k harf-k&#252;&#231;&#252;k harf olması &#246;nemli değildir. Yani yukarıdaki ifadelerden birini şu bi&#231;imlerden birinde yazabilirdik; kodumuz yine de &#231;alışırdı:
For fontBoyut = 1 To 7
FOR FONTBOYUT = 1 TO 7
for fontboyut = 1 to 7
Fakat... Bu demek değildir ki, VBScript ile kodlamanın kendi gelenekleri yok! VBScript’&#231;iler genellikle komutların birinci harfini b&#252;y&#252;k yaparlar: For gibi. Değişken adlarında ise kendinize anlamlı gelen bir bi&#231;im tutturabilir ve &#246;yle devam edebilirsiniz.
Eğer bir kod satırı &#231;ok uzun geliyor ve daha sonra anlaşılması imkansız derecede uzuyorsa, bu satırı alt &#231;izgi (_) ile aşağı satırda devam ettirebilirsiniz. &#214;rnek:
<%
If degisken1 > 1 And _
değisken1 < 10 Then
%>
Değişkenler
Programcılıkta işlemlerimizi değişkenlerle yaparız. değişkeni bir kap gibi d&#252;ş&#252;nebilirsiniz. S&#246;zgelimi “G&#252;n,” değişkenin adı ise bu değişkenin değeri Pazar, Pazartesi, Salı, vd., olabilir. Her değişken, t&#252;r&#252;ne g&#246;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 yapabilir.
VBScript’te, bir &#231;ok başka bilgisayar programlama dilinden farklı olarak değişkenlerin tanımlanması veya “beyan edilmesi,” “boyutlandırılması” gerekmez. Belirtilmemiş, &#246;nceden tanımlanmamış bir değişkene değer atamaya kalkarsanız, VBScript bunu m&#252;kemmel şekilde kabul eder. Fakat bu k&#246;t&#252; bir programcılıktır. İyi programcılık değişkenlerin &#246;nceden beyan edilmesini gerektirir. Bunu DIM komutuyla yaparız. DIM, Dimension (boyutlandır) kelimesinden kısaltılmıştır. Pek akıllıca g&#246;r&#252;nmese de bu komut, bilgisayarın değişken yeri olarak bir bellek alanının boyutunu belirtmesini sağlar.
&#214;rnekler:
<%
DIM Gun, Ay, Ogrenci, Not
Gun = “Pazartesi”
Ay = “Ocak”
Ogrenci = “Necip”
Not = 5
%>
Şimdi burada Gun, Ay, Ogrenci, Not adıyla d&#246;rt değişken oluşturduğumuzu ve bunlara sırasıyla “Pazartesi,” “Ocak,” “Necip” ve “5” değerlerini atadığımızı g&#246;r&#252;yorsunuz. Bu noktada VBScript yorumlayıcısına sorsanız, “Peki, s&#246;yle bakalım, Gun değişkeninin değeri nedir?” diye, yorumlayıcı size “Bunu bilmeyecek ne var? Elbette Pazartesi’dir!” derdi. Belki bu noktada siz de kendi kendinize “Pazartesi, Ocak ve Necip kelimeleri tırnak i&#231;inde iken, acaba 5 rakamı neden tırnak i&#231;inde değil?” diye soruyorsunuz. G&#252;zel soru. Ama cevabı i&#231;in biraz bekleyeceksiniz.
Değişken isimleri, mutlaka harfle başlamalıdır; i&#231;inde noktalama işaretleri bulunamaz ve uzunluğu 255 karakteri ge&#231;emez.
-----------------
K&#246;t&#252; programcılığı &#246;nlemek i&#231;in!
Değişkenleri tanımlamadan kullanmak “k&#246;t&#252; programcılıktır” demek, ilerde kendi başınıza elinizle program hatası getirirsiniz demektir. Daha sonra &#246;rneklerini g&#246;receğiz; ASP, sitemize giren bir ziyaret&#231;iye bir oturum (Session) a&#231;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&#231;in, bu değişkenin değerinin yeni sayfada değişmemesi gerekir. ASP programı yazarken, bazen gelişi-g&#252;zel değişkenlere değer atayabilirsiniz. Neden? O anda aklınıza değişken adı olacak kelime gelmediği i&#231;in! Bu değişken adını daha &#246;nce kullanmışsanız ve i&#231;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ığı &#246;nlemek i&#231;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 &#231;ok yarayacağı bir diğer nokta, kodda değişken adını yazarken hata yapmanızı &#246;nlemektir. VBScript sizin hata yaptığınızı bilemeyeceği i&#231;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&#246;r&#252;nen işlemler yapar, fakat beklediğiniz sonucu elde edemezsiniz. OPTION EXPLICIT, yanlış yazdığınız değişkeni yeni değişken sayarak &#246;nceden tanımlanmamış değişken kullandığınızı d&#252;ş&#252;nerek, duracaktır.
Peki, ş&#246;yle bir değişken tanımlama acaba ortaya nasıl bir değişken &#231;ıkartır:
<%
DIM Gunler(31), Aylar(12), Ogrenciler(210), Notlar(10)
%>
Bu y&#246;ntemle oluşturduğumuz kodlarla elde edilecek “kaplar,” birden fazla değer tutabilir. Yani:
<%
DIM Gunler(7), Aylar(12), Ogrenciler(21), Notlar(10)
Gunler(1) = “Pazartesi”
Aylar(3) = “Mart”
Ogrenciler(12) = “Necip”
Notlar(5) = 5
%>
Bu durumda i&#231;inde 7 ayrı değişken tutabilecek olan G&#252;nler değişkeninin 1 numaralı olanının değeri “Pazartesi,” 12 değer tutabilecek olan Aylar değişkeninin 3 numaralı olanının değeri “Mart,” 21 ayrı değer tutabilecek olan Ogrenciler değişkeninin 12 numaralı olanının değeri “Necip” ve nihayet 10 ayrı değer tutabilecek olan Notlar değişkeninin 5 numaralı olanının değeri ise 5 olacaktır. B&#246;yle, birden fazla değer tutabilen değişkenlere Dizi Değişken veya Array denir.
Array Fonksiyonu
VBScript’in kullanılmaya hazır bir &#231;ok fonksiyonu vardır; bunlardan biri olan Array ile, kolayca dizi değişken oluşturabiliriz.
Diyelim ki, Gunler(7) dizi-değişkenini g&#252;n adları ile doldurarak oluşturmak istiyoruz:
<%
Dim Gunler = Array (“Pazartesi” , “Salı” , “&#199;arşamba” , “Perşembe” , “Cuma” , “Cumartesi”, “Pazar”)
%>
ile hem dizi-değişkeni oluşturabiliriz; hem de değerlerini atayabiliriz.
Bu suretle oluşturduğumuz dizi değişkenin &#252;yelerine daha sonra sıra numaraları ile atıfta bulunabilirsiniz. &#214;rneğin:
<%=Gunler(6)%>
bize Pazar’ı verir. Neden? &#199;&#252;nk&#252; hayatlarının b&#252;y&#252;k b&#246;l&#252;m&#252;n&#252; penceresiz ortamlarda ge&#231;iren kişiler olan dil tasarımcıları, sayı saymaya biz normal insanlar gibi 1’den değil 0’dan başlarlar; dolayısıyla Gunler dizi-değişkeni Gunler(0)’dan başlar!
Şimdi, aklınıza şu soru gelebilir: Dizi değişken oluşturacağımıza, neden “ogrenci1,” “ogrenci2,” “ogrenci3” diye değişkenler oluşturmuyoruz ve bunlara değerler atamıyoruz? K&#246;t&#252; soru! Dolayısıyla cevabını hemen verelim. Dizi değişkenlerde bir değişkene numarasıyla atıfta bulunabilirsiniz. Ve numara yerine bir başka değişkeni kullanabilirsiniz. &#214;rneğin, OgrenciNo değişkeninizin değeri 12 ise
<%
....
If Ogrenciler(OgrenciNo) = “Necip”
...
%>
şeklinde bir d&#246;ng&#252; ile aradığınız &#246;ğrencinin Necip olup olmadığını sınayabiliriz. (D&#246;ng&#252;lere birazdan geliyoruz!)
Başka programlama dillerine &#246;zellikle Visual Basic’e aşina olanların aklına ş&#246;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&#252;merik, karakter değerler) denir. Programlama dillerinde bir de matematik işlem yapmaya elverişli değişken t&#252;r&#252; vardır: Sayı (Number). VBScript, bir değişkene alfan&#252;merik (karakter, metin) olarak atadığınız değeri &#231;ift tırnak i&#231;ine almanızı ister. S&#246;zgelimi Ogrenci(12) değişkeni i&#231;in Necip değerini atamak istiyorsunuz: Necip kelimesini &#231;ift tırnak i&#231;ine almak zorundasınız. Sayı olarak kullanacağınız değerleri ise tırnak i&#231;ine almazsınız. (Sayı olarak kullanacağınız değerlerin sadece rakam olabileceğini s&#246;ylemek gerekmez!) Fakat, işleri karıştıran nokta, VBScript a&#231;ısından değişken t&#252;r&#252; diye bir şey olmamasıdır. Visual Basic, k&#252;&#231;&#252;lt&#252;l&#252;p Script dili haline getirilirken, değişken t&#252;r&#252; &#246;zelliği alınmayınca, ortaya işleri karıştıran (veya kolaylaştıran) b&#246;yle bir durum &#231;ıkmış bulunuyor. Karışıklık, &#231;ift tırnak i&#231;inde verdiğiniz bir değeri matematik işlemde kullanmaya kalktığınızda karşınıza &#231;ı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&#246;yleyerek, duracaktır. VBScript’in bu eksikliğini gidermek i&#231;in bazı ASP programcıları değişken adlarının &#246;n&#252;ne karakter-dizileri i&#231;in “str” harflerini koyarlar: strAy, strOgrenciler, gibi.
İsterseniz, VBScript’in karakter-dizisi ve sayı değişkenleri nasıl ayırt ettiğini veya etmediğini bir ka&#231; &#246;rnekle g&#246;relim. Şu kodu yazarak, &#231;alıştırın:
<% Option Explicit %>
<HTML>
<%
Dim Degisken(2), Toplam
Degisken(1) = "Necip"
Degisken(2) = "Dayanır"
Toplam = degisken(1) + Degisken(2)
%>
<% =Toplam %>
</HTML>
Sonu&#231;: “NecipDayanır” değil mi? (Arada boşluk olmamasına aldırmayın şimdilik!) Peki; şimdi Degisken(1) değeri olarak tırnak i&#231;ine alarak 5, Degisken(2) değeri olarak yine tırnak i&#231;inde 10 yazın. Programı tekrar &#231;alıştırın. Sonu&#231;? 510!? Peki; tırnakları kaldırın 5 ve 10’un &#231;evresinden. Sonu&#231;? 15. Oh, neyse! Bir an i&#231;in VBScript matematik bilmiyor sandık! Bu durum VBScript’in matematik bilgisinin kıtlığından değil, tırnak i&#231;indeki değerlerin, VBScript ayrım yapmıyor bile olsa, karakter-dizisi (String) iken toplama işleminde ard 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&#231;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ı &#231;alıştırın. Ne sonu&#231; aldınız?
VBScript’in kullandığı tek t&#252;r değişkene variant denir. Variant, karakter-dizini (String) de olabilir, sayı (Number) da. Fakat bir variant’ın i&#231;indeki değer, veri olarak nitelendiğinde şu t&#252;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&#252;zen noktalı değer denilen veri t&#252;r&#252;d&#252;r. Pozitif sayılar i&#231;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: &#214;nceden belirlenmiş bi&#231;imlerde tarih ve zaman bilgisi i&#231;erir.
Empty: Tanımlanmış ancak hen&#252;z değer atanmamış (boş) değişken t&#252;r&#252;d&#252;r.
Error: Programın hata mesajlarını ve hata değerlerini tutar.
Integer: Noktalık b&#246;l&#252;m i&#231;ermeyen tamsayı verilerdir; değeri -32.768 ile +32.767 arasında olabilir.
Long: Noktalık b&#246;l&#252;m i&#231;ermeyen tamsayı verilerdir; değeri -2.147.483.648 ile 2.147.483.648 arasında olabilir.
Null: İ&#231;inde veri bulunmamak &#252;zere tanımlanmış değişkenlerdir.
Object: Windows OLE Nesnelerini tutmak &#252;zere tanımlanmış değişkenlerdir.
Single: Y&#252;zen noktalı değer denilen veri t&#252;r&#252;d&#252;r. Pozitif sayılar i&#231;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
Sabit Değerler
VBScript’te bir kere verdiğiniz değeri hi&#231; değişmeyen unsurlar (değişken diyemezdik, değil mi?) vardır. Sabit değer, b&#252;t&#252;n ASP sayfası boyunca (hatta isterseniz, b&#252;t&#252;n site, yani Uygulama boyunca) değişmeden kalır. Bu değerleri Const (constant, sabit kelimesinden t&#252;retilme) komutuyla belirtiriz:
Const DolarDeger = 560780
Const SirketinAdi = “Web Tasarım ve Site Onarım A.Ş.”
Const Slogan = “Siteler ve Kırık Kalpler Onarılır”
VBScript’te İşlemciler (Operat&#246;rler)
Bilgisayar Operat&#246;r&#252; ile program Operat&#246;r&#252; arasında fazla bir fark yoktur. Her ikisi de verdiğiniz değerleri ya karşılaştırır bir sonu&#231; bulurlar; ya da bu değerlerle aritmetik işler yapar ve bir sonu&#231; ortaya &#231;ıkartırlar. Bilgisayar Operat&#246;r&#252; daha sonra bu iş i&#231;in sizden para ister; program operat&#246;r&#252; istemez! VBScript’in operat&#246;rleri ve yaptıkları işler ş&#246;yle sıralanır:
Operat&#246;r İşlev Sınıfı
+ Toplama Aritmetik
- &#199;ıkartma
* &#199;arpma
/ B&#246;lme
^ &#220;ss&#252;n&#252; alma
\ Tamsayı b&#246;lme
Mod Mod&#252;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&#252;y&#252;k veya k&#252;&#231;&#252;k olduğunu sınar (and kelimesi var)
>= and <= Bir değişkenin diğerinden b&#252;y&#252;k veya eşit, veya k&#252;&#231;&#252;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&#231;in hangi koşulun oluşması gerektiğini sınar
Not Bir ifadeyi negatif hale getirir
XoR Sadece bir koşulun 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&#231;in kullanım sıraları &#246;nemlidir. Bunu bir &#246;rnekle a&#231;ıklayalım. 100’den 6’yı &#231;ıkarmak ve sonucu 2’ye b&#246;lmek istiyorsunuz; sonu&#231; 47 olacaktır. Yani: 100-6/2. Değil mi? Bu işlemin VBScript’teki sonucu 97 olacaktır. &#199;&#252;nk&#252;, VBScript &#246;nce 6’yı 2’ye b&#246;lecek ve elde ettiği sonucu 100’den &#231;ıkartacaktır. VBScript’te, aritmetik işlemlerin yapılma sırası ş&#246;yledir:
Operat&#246;r İşlev &#214;ncelik
+ Toplama 3
- &#199;ıkartma 3
* &#199;arpma 2
/ B&#246;lme 2
^ &#220;ss&#252;n&#252; alma 1
VBScript ile hesap işlemi yaparken, aritmetik işlem sırasını karıştırarak hatalı sonu&#231; almamak i&#231;in sık sık parantez kullanmak yerinde olur. Yukarıdaki &#246;rnek ş&#246;yle yazılabilirdi: (100-6)/2. Tabii amacınız 100’&#252; 6/2’ye b&#246;lmek ise bu işlemi ş&#246;yle yazmalısınız: 100-(6/2).
VBScript’de Program Kontrol&#252;
İster Script diliyle, ister ger&#231;ek programlama diliyle yazılsın, bir bilgisayar programının varlık sebebi, &#231;eşitli durumları değerlendirerek, belirli durumlarda belirli kararlar verebilmesidir. Bunu programın kontrol &#246;ğelerini kullanarak yaparız. Programlar, bu &#246;ğeler sayesinde karşılaştırma yaparlar; belirli durumların oluşup oluşmadığını sınarlar; veya belirli bir durumun oluşmasına veya sona ermesine bağlı olarak bir iş yaparlar veya yapmazlar. Bunu sınamalarla (koşullu ifadelerle) veya d&#246;ng&#252;lerle sağlarız. Kimi zaman da, programa (programın mantığı &#231;er&#231;evesinde) istediğimiz anda yapmakta olduğu işi durdurarak, başka bir işi yapmasını bildirebiliriz. Bunlara da S&#252;re&#231;ler (veya Prosed&#252;rler) denir. (Adındaki Basic’e bakarak, VBScript’i basit bir dil sanmıyordunuz, umarım!)
Mantıksal Sınamalar
VBScript’te programın karar vermesini sağlayan ilk kontrol &#246;gesini “eğer ... ise... yap!” şeklinde &#246;zetleyebiliriz. VBScript bu işlemi iki ayrı ifadeyle yaparız:
If.. Else
VBScript’in vereceğiniz bir durumun bulunup bulunmadığını sınamasını sağlar. Genel yazım kuralı ş&#246;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 &#246;rnekle ifade edelim: Eğer saat 12’den &#246;nce ise sayfaya “G&#252;naydın” yazdır; saat 12’den sonra ise “T&#252;naydın” yazdır.
Fakat burada bir eksiklik var: Saat 18’den sonra ise sayfaya “İyi akşamlar!” yazdırmamız daha doğru olmaz mı? If d&#246;ng&#252;s&#252; kendi i&#231;inde sınırsız Elseif (ikinci şartlı d&#246;ng&#252
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
imkanı vererek bize bunu sağlar. Her Elseif’i yeni bir If gibi d&#252;ş&#252;nebilirsiniz. İşte şu senaryoyu ger&#231;ekleştirecek kod &#246;rneği (hosgeldiniz01.asp):
<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>
<BODY>
<H2>
<CENTER>
<%
If Hour(Now) <12 Then
Response.Write "G&#252;naydın! "
ElseIf Hour(Now) >= 18 Then
Response.Write "İyi akşamlar! "
Else
Response.Write "T&#252;naydın! "
End If
Response.Write "<BR>"
Response.Write "Site Onarım Sitesine Hoşgeldiniz"
%>
</CENTER>
</H2>
</BODY>
</HTML>
Bu programı &#231;alıştırdığınız zaman, &#231;alıştırdığınız saate g&#246;re sayfadaki selamın değiştiğini g&#246;receksiniz. (Bu &#246;rnekte, sadece şartlı d&#246;ng&#252; işlemi yapmıyoruz; fakat aynı zamanda Hour(Now) fonksiyonu ile tanışıyoruz ve sayfadaki b&#252;t&#252;n unsurları ASP y&#246;ntemiyle yazdırıyoruz! Fakat şimdilik bu iki unsurun &#252;zerinde de durmayın.) Programımız nasıl &#231;alışıyor? Yukarıda başka vesile ile VBScript’in kullanılmaya hazır fonksiyonları vardır, demiştik. Bunlardan biri de o andaki saati ve tarihi bildiren Now() fonksiyonudur. Bu fonksiyondan d&#246;nen değerle bu andaki saati &#246;ğreniyoruz; ve bunu &#246;nce 12 ile karşılaştırıyoruz. Fonksiyondan d&#246;nen değer, eğer 12’den k&#252;&#231;&#252;kse, programımız Response (Karşılık) Nesnesi’nin .Write Metodu’nu kullanarak (Nesneler ve Metodlar meselesi &#252;zerinde de durmayın!) ziyaret&#231;inin Browser penceresine “G&#252;naydın” yazdırıyor.
D&#246;nen Değer
Fonksiyonlar, kendilerini g&#246;reve &#231;ağıran VBScript komutlarına ve işlemlerine bir değer sunarak karşılık verirler. Buna fonksiyondan d&#246;nen değer denir. Yani diyelim ki Now() fonksiyonunu g&#246;reve &#231;ağırdınız. Bu fonksiyon derhal işletim sisteminden saati ve tarihi &#246;ğrenerek kendisini g&#246;reve &#231;ağıran işleme bildirir. Daha sonra VBScript’in kullanılmaya hazır diğer bir &#231;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 bimemiz 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 icra edecektir. Yani eğer saat 12’den k&#252;&#231;&#252;k değilse, ElseIf satırı icra edilecektir. ElseIf de tıpkı If gibi işlediği i&#231;in bu kez yeni bir sınav yapılacak ve saatin 18’e eşit veya b&#252;y&#252;k olup olmadığı sınanacaktır. Eğer saat 18’e eşit veya b&#252;y&#252;kse, (sınav sonucu doğru ise) ilk satır icra edilecek ve ziyaret&#231;inin Browser penceresine “İyi akşamlar!” yazdırılacaktır. 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&#252;&#231;&#252;k değilse, 18’den k&#252;&#231;&#252;k veya 18’e eşit değilse, yani 12 ile 17 arasında ise, ekrana “T&#252;naydın” yazılacaktır.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet sohbet