İnternet programcılığı-i ders notları vbscript · 2012. 5. 11. · İnternet...

20
İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

Upload: others

Post on 01-Apr-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

İnternet Programcılığı-I Ders Notları

VBScript

Kaynak Active Server Page (ASP) Professional Skills Devlopment

Page 2: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

2

VBScript’e Giriş HTML bir programlama dili olmayıp, bu dil ile sadece durgun web sayfaları yapılabilir. Kullanıcı ile etkileşimli web sayfası yapmanın iki yolu;

• İstemci-Tarafı Uygulamaları (Client-Side Extension)

• Sunucu-Tarafı Uygulamaları (Server-Side Extension)

İstemci-Tarafı (IT) Uygulamaları Aşağıdaki teknolojiler kullanarak istemci-tarafı uygulamalar oluşturulur.

• Script Dilleri

• Java Appletler

• ActiveX Kontrolleri

• Tarayıcı (Browser) Plug-in’leri

• Basamaklı Biçem Sayfası (Cascading Style Sheets)

• Dynamic HTML

En popüler script dilleri VBScript ve JavaScript tir.

Sunucu-Tarafı (ST) Uygulamarı • Standart Common Gateway Interface (CGI)

• Active Server Page (ASP)

• Personel Home Page (PHP)

IT ve ST Uygulamaları Arasındaki Farklar • IT Uygulamalar istemci tarafında çalıştığından Sunucuya dönme

ihtiyacı duymaz dolayısıyla daha hızlıdır.

• IT Uygulamalarını desteklemeyen tarayıcılar olabilir ama ST Uygulamalarında böyle bir sorun yoktur.

• ST Uygulamaları bir veri tabanı ile etkileşimli çalışabilir.

• IT ve ST Uygulamalarının her ikisini de aynı sayfada kullanmak mümkündür.

VBScript VBScriptin en önemli avantajlarından biri öğrenmesinin kolay olmasıdır.

Örnek: Bu örnek mevcut tarih ve zamanı yazan basit bir VBScript örneğidir. <BODY> <SCRIPT language= "VBScript"> <!-- Document.Write "Mevcut Tarih ve Saat: " & Now() & "."

Page 3: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

3

--> </SCRIPT> </BODY>

Yukarıdaki scripti detaylı olarak inceleyelim;

<SCRIPT> ve </SCRIPT> Tagları Web sayfasında scriptler bu taglar arasına yazılır. Script yazacağımız dil sadece VBScript olmadığından scriptin hangi dilde yazıldığını “language” özelliğinde belirtmeliyiz.

HTML Açıklama Tagları Niçin Kullanıldı? Normal olarak bir browser tanımadığı bir tag ile karşılaşınca bu tagları ihmal edip aradaki metni gösterir. Eğer browser <SCRIPT> tagını desteklemiyorsa sayfada script kodlarını gösterecektir. Bu kodların açıklama satırları gibi algılanması için açıklama tagları arasına yazıyoruz.

Document.Write: Bu fonksiyon web sayfasına metin yazmak için kullanılır.

Now(): Bu fonksiyonda mevcut tarih ve saati döndürür.

VBScript’in Temelleri VBScript kodları yazarken bu kodların arasına HTML taglarını yazamayız.

Herbir satır bir VBScript kodu yada fonksiyonu içerir. MsgBox "Merhaba VBScript"

Bir satırda olması gereken bir fonksiyonu cok satırlı olarak aşağıdaki gibi yazabiliriz. MsgBox "Merhaba VBScript", vbOkOnly, "Mesaj Penceresi"

ya da MsgBox "Merhaba VBScript", _ vbOkOnly, _ "Mesaj Penceresi"

Değişkenler Değişken isimleri,

• 200 karakter uzunluğunda olabilir.

• Harfle başlamak zorundadır.

• Sadece harf, sayı ve alt çizgi içerebilir; noktalama işaretleri ve boşluk içeremez.

• VBScript için özel anlam taşıyan kelime ve karakter içeremez. Dim strAdi Dim intYasi Dim strAdres1

Birer değişken ismine örnekdirler.

Page 4: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

4

Açıklamalar VBScript kodları arasına açıklamalar eklemek için (‘) karakteri kullanılır.

Örnek: 'Bu bir açıklama satırıdır. ' intYas=35 'Bu değişkene Müşterinin yaşı atanıyor.

Matematiksel Operatör • +, toplamada kullanılır.

• -, çıkartmada kullanılır.

• *, çarpmada kullanılır.

• /, reel sayı bölmesinde kullanılır.

• \, tamsayı bölmesinde kullanılır.

• mod, bölmeden sonra kalanı bulmada kullanılır.

Örnek: <BODY> <H1>Sadece Toplama Yapan Hesap Makinesi</H1> İki sayı girip Topla Buttonuna basınız. <P> <FORM name= "frmHesap"> <PRE> 1. Sayı: <INPUT type="text" name="txtSayi1"><BR> 2. Sayı: <INPUT type="text" name="txtSayi2"><BR><BR> </PRE> <INPUT type="button" name="topla" value="Topla"> </FORM> </P> <SCRIPT language="VBScript"> <!-- 'Bu bir Alt Procedure Scriptidir.' Sub Topla_onClick() Dim varCevap 'Burada string ifadeyi sayısala çevirmek için' 'CDbl() fonksiyonuna ihtiyaç duyarız.' 'Aksi halde sonuç 2+2=22 olur.' varCevap=CDbl(frmHesap.txtSayi1.Value)+ _ CDbl(frmHesap.txtSayi2.Value) MsgBox "Cevap= " & varCevap End Sub --> </SCRIPT> </BODY>

String Operatörler • +

• &

String ifadeleri birleştirmede kullanlılır.

Örnek:

Page 5: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

5

Document.Write "Birinci String" & " ve " & "İkinci String" Document.Write "Ahmet" + " ve " + "Mehmet"

Bu iki operatör değerlerden bir tanesi “NULL” ise birbirlerinden farklılık gösterirler. NULL değeri olmayan bir ifadeyi işaret eder.Bu da sıfır uzunluğundaki bir stringden farklıdır. Ampersand (&) operatörü NULL’u ihmel ederken Toplama (+) operatörü NULL üretir. Yani

İfade Sonuç "Kahve" + NULL NULL "Kahve" + "" "Kahve" "Kahve" & NULL "Kahve" "Kahve" & "" "Kahve"

Atama ve Karşılaştırma (Assignment and Comparison)

VBScript değer atamak için herzaman “=” işareti kullanır.

Örnek: varCevap=3+6 varMsg="Merhaba" & strAdi bDevam=true

VBScript’te “=” operatörünün bir başka görevi de eşitliği karşılaştırmaktır.

Örnek: if varX=5 then Document.Write "Değer=5 tir" end if

Diğer Karşılaştırma Operatörleri;

<, >, <=, >=, <> dir.

Not: Bazı dillerde (Java, JavaScript, C ve C++ gibi) karşılaştırma operatörleri farklıdır.

Diğer Operatörler And: varBir=true varIki=false ‘Aşağıdaki değişken false (Yanlış) dur. varUc=varBir And varIki

Or: varBir=true varIki=false ‘Aşağıdaki değişken true (Doğru) dur. varUc=varBir Or varIki

Not: VBScript te true aslında “-1”, false da “0” a eşittir. Bununla birlikte “0” sayısı false, sıfırdan farklı bütün sayılar da true olarak dikkate alınırlar.

Page 6: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

6

Örnek: İşlem öncelikleri parantezle bildirilir. <SCRIPT language="VBScript"> varX=43 varY=2 varZ=2 'Çarpmanın önceliğinden aşağıdaki varSonuc1 in değeri 47 dir' varSonuc1=varX+varY*varZ Document.write "Sonuç1= "& varSonuc1 &"<BR>" 'Parantezin önceliğinden aşağıdaki varSonuc2 nin değeri 90 dır' varSonuc2=(varX+varY)*varZ Document.write "Sonuç2= "& varSonuc2 </SCRIPT>

Prosedürler (Procedures) Programları birtek kod bloğu arasında yazmak programın incelenmesini çok zorlaştırır. Bu yüzden programları küçük alt programların birleşimine dayalı yazmak daha uygundur.

İki tip prosedürr vardır;

• Alt Programlar (Subroutines)

• Fonksiyonlar (Functions)

Bu iki tip arasındaki fark

• Alt programlar değer döndürmezler

• Fonksiyonlar çağırıldığı yere bir değer döndürür.

Alt Programlar (Subroutines) Alt programlar “Sub” anahtar kelimesi ile tanımlanır ve “End Sub” ile sonlandırılır.

Kullanımı: Sub sub_adi() ‘Alt program kodları’ End Sub

Örnek Sub Tarih_Goster() Documet.Write “Mevcut Tarih ve Saat: ”& Now() & “.” End Sub

Alt Programı Çağırmak (Calling a Subroutine)

Bir alt programı çağırmak için “Call” anahar kelimesi kullanılır.

Örnek: Call Tarih_Goster()

Parametreler İle Alt Program Oluşturma

Alt programa göndereceğimiz parametreleri sıra ile yazarız.

Page 7: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

7

Sub alt_program_adi (param_1, param_2, …) ‘Alt programda yürütülecek program kodları. End Sub

Parametreli alt programı çağırırken de argüman değerler vererek çağırırız. Call alt_program_adi(arg_1, arg_2, …)

Örnek: <SCRIPT language="vbscript" type="text/vbscript"> Sub KalinYaz(strMetin) Document.Write "<B>" & strMetin & "</B>" End Sub </SCRIPT> <SCRIPT language="vbscript" type="text/vbscript"> Call KalinYaz("Bu Metin Kalın Yazılacaktır.") </SCRIPT>

Fonksiyonlar (Functions) Fonksiyonlar altprogramların tüm yaptıklarını yapabilir, buna ek olarak bir de değer döndürür.

Fonksiyon Oluşturma

Fonksiyonlar Function-End Function bloğu arasında tanımlanır. Function fonksiyon_adi() ‘Fonksiyon içinde yürütülecek program kodları fonksiyon_adi=donecek_olan_deger End Function

Fonksiyonu çağırırken Değişken=fonksiyon_adi()

Örnek: <SCRIPT language="vbscript"> Function selamla(isim) selamla="<H3>Merhaba "&isim&"</H3>" End Function </SCRIPT> <BODY> <SCRIPT language="vbscript"> strOut=selamla("Ahmet DOĞAN") Document.Write strOut </SCRIPT> </BODY>

Parametreli Fonksiyon Oluşturma

Fonksiyona göndereceğimiz parametreleri sıra ile yazarız. Function fonksiyon_adi(param_1, param_2,...) ‘Fonksiyon içinde yürütülecek program kodları fonksiyon_adi=donecek_olan_deger End Function

Parametreli Fonksiyonu çağırırken de argüman değerler vererek çağırırız.

Page 8: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

8

Değişken=fonksiyon_adi(arg_1, arg_2,...)

Örnek: <SCRIPT language="vbscript"> Function baslik(metin, sayi) baslik="<H"&sayi&">"&metin&"</H"&sayi&">" End Function </SCRIPT> <BODY> <SCRIPT language="vbscript"> strOut=baslik("Siteme Hoşgeldiniz",2) Document.Write strOut </SCRIPT> </BODY>

VBScript Fonksiyonları Fonksiyon Açıklama Örnek

InStr Bir string içerisinde bir alt stringin başlangıç karakterini bulur.

InStr(“Merhaba”,“rh”)=3

Left Stringin solundan istenilen kadarını almada kullanılır.

Left(“Merhaba”,3)=“Mer”

Len Bir stringin uzunluğunu verir. Len(“Merhaba”)=7 Trim Bir stringin heriki tafaındaki boşluk

karakterlerini temizler. Trim(“ Ali ”)=“Ali”

Space Verilen sayı kadar boşluk karakteri ile string oluşturur.

Space(5)=“ ”

Lcase Bir Stringi küçük harfe dönüştürür. Lcase(“VBS”)=“vbs”

Tarihler ve Zamanlar

Fonksiyon Açıklama Örnek

Now Tarih ve saati veren fonksiyon Now=04.01.2004 15:30:32 Time Saati veren fonksiyon Time=15:30:32 Date Tarihi veren fonksiyon Date=04.01.2004 WeekDay Verilen tarihin haftanın kaçıncı

günü olduğunu verir. WeekDay("04.01.2004")=1 WeekDay(Now)=2 gibi

WeekDayName Gün sırası verilen günün adını verir WeekDayName(1)=Pazar WeekDayName(1,true)=Paz

Month Verilen tarihin yılın kaçıncı ayı olduğunu verir.

Month(“04.01.2004”)=1 Month(Now)=1

MonthName Ay sırası verilen ayın adını verir MonthName(2)=Şubat MonthName(2,true)=Şub

DateAdd Verilen tarihi istenen miktarda artırma ya da azaltmada kullanılır.

DayAdd(“d”,2,“4.1.2004”)= “6.1.2004”

Yukarıdaki DateAdd fonksiyonunun artış miktarını d (day:gün) olarak belirtmiştik. Bunun haricinde;

“yyyy” : year (yıl)

“q” : quarter (çeyrek yıl:3 ay)

Page 9: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

9

“m” : month (ay)

“d” : day (gün)

Örnek: DateAdd("m",-2,"12.05.2003") ‘ =12.03.2003 DateAdd("yyyy",4,"12.05.2003") ‘ =12.05.2007

Scriptler Nereye Yazılır? VBScript scriptlerini istediğiniz yerlere yazabilirsiniz. Üç farklı script yazma şekli vardır.

• Hemen yürütülen skriptler (Immediate scripts)

• Çağırıldığında yürütülen skriptler (Global procedure scripts)

• Bir olay sonucu çağırılan skriptler (Event procedure scripts)

Hemen Yürütülen Skriptler (Immediate Scripts) Bu tip scriptler yazıldığı yerde Tarayıcı tarafından anında yürütülür.

Örnek: <SCRIPT language="vbscript"> strOut="Siteme Hoşgeldiniz" MsgBox strOut </SCRIPT>

Çağırılan Skriptler (Global Procedure Scripts) Bu tip scriptler hemen yürütülen scriptler ya da diğer prosedürler tarafından çağırılan alt program ya da fonksiyonlardır.

Örnek: <HTML> <HEAD> <TITLE>Untitled Document</TITLE> <SCRIPT language="VBScript"> <!-- REM Bu global prosedür script örneğidir. Sub SaatiYaz() Document.Write "<PRE>Bu Gün: " &_ WeekDayName(WeekDay(Now)) &"<BR>" Document.Write "Tarih: " & Date &"<BR>" Document.Write "Saat: " & Time &"<BR></PRE>" End Sub --> </SCRIPT> </HEAD> <BODY> <SCRIPT language="VBScript"> <!-- Call SaatiYaz() --> </SCRIPT> </BODY>

Page 10: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

10

</HTML>

Olay Skriptleri (Event Procedure Scripts) Tarayıcı nesnelerinin olaylarına eklemiş olduğumuz prosedürlerdir. Örneğin HTML button kontrolünün OnClick olayına bir olay prosedürü oluşturabiliriz.

Örnek: <HTML> <HEAD> <SCRIPT language="VBScript"> REM bu bir Event Procedure örneğidir. Sub Button1_onClick() MsgBox "Button1'e tıkladınız..." End Sub </SCRIPT> </HEAD> <BODY> <FORM action="" method="get" name="Form1"> <INPUT name="Button1" type="button" value="Tıklayınız"> </FORM> </BODY> </HTML>

ya da <HTML> <HEAD> <SCRIPT FOR="Button1" EVENT="onClick" language="VBScript"> REM bu bir Event Procedure örneğidir. MsgBox("Button1'e tıkladınız..." </SCRIPT> </HEAD> <BODY> <FORM action="" method="get" name="Form1"> <INPUT name="Button1" type="button" value="Tıklayınız"> </FORM> </BODY> </HTML>

Veri Tipleri ve Dönüştürücü Fonksiyonlar VBScript dili veri tipi bildirimine izin vermez, sadece Variant denen bir tek tip veriye sahiptir. Variant tip nümerik olarak kullanılırsa nümerik olarak, string olarak kullanıldığı yerde ise string olarak davranır ve her türlü veriyi tutabilir. Dim anahtar kelimesi ile tanımlanır.

Veri Tipleri Bir variant tipin içerebildiği alt veri tipleri aşağıdadır.

Subtype Description

Empty Variant ın başlanıç halidir. Sayısal ise 0, string ise sıfır uzunluğunda bir string (“”) dir.

Null Geçerli bir veri içermeyen bir Variant’tır Boolean True ya da False değer içeren değişkendir.

Page 11: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

11

Byte 0 ile 255 arasında bir tam sayı Integer -32,768 ile 32,767 arasında bir tamsayı Currency -922,337,203,685,477.5808 to 922,337,203,685,477.5807. Long -2,147,483,648 ile 2,147,483,647 arasında bir tamsayı Single Negatif değerler için -3.402823E38 ile -1.401298E-45, pozitif

değerler için 1.401298E-45 ile 3.402823E38 arasında değer tutan tek duyarlı gerçel sayı

Double Negatif değerler için -1.79769313486232E308 ile -4.94065645841247E-324, pozitif değerler için 4.94065645841247E-324 ile 1.79769313486232E308 arasında değer tutan çift duyarlı gerçel sayı

Date (Time) 01.01.100 ile 31.12.9999 arasında bir tarih tutar. String Yaklaşık 2 milyar karakter uzunluğunda string değer tutar. Object Bir nesne tutar Error Bir hata sayısı tutar.

Dönüştürücü Fonksiyonlar (Conversion Functions) Asc: Verilen Karakterin ASCII kodunu verir. Dim Sayi Sayi = Asc("A") ' = 65. Sayi = Asc("a") ' = 97. Sayi = Asc("Apple") ' = 65.

CBool: Verilen değeri mandıksal değere dönüştürür. Dim A, B, kontrol A = 5: B = 5 ' Atama işlemi kontrol = CBool(A = B) ' kontrol = True olur. A = 0 ' Atama içlemi kontrol = CBool(A) ' kontrol = False olur.

CByte: Bir byte lık tamsayıya dönüştürür. Dim MyDouble, MyByte MyDouble = 125.5678 ' MyByte = CByte(MyDouble) ' MyByte, 126 ya eşit olur.

CCur: Currency veriye dönüştüren fonksiyondur. Currency virgülden sonra ondalık hane için 4 basamak ayırır. Dim MyDouble, MyCurr MyDouble = 543.214588 ' MyDouble, Double birdeğişkendir. MyCurr = CCur(MyDouble*2) MyDouble*2 nin sonucu olan (1086.429176) sayısını (1086.4292) Currency sayısına çevirir.

CDate: Tarih tipinde bir veriye dönüştürür. MyDate = "May 30, 1971" ' Tarih tutan string tipli değişken. MyShortDate = CDate(MyDate) ' 30.05.1971 olur. MyTime = "4:35:47 PM" ' Define time. MyShortTime = CDate(MyTime) ' 16:35:47 olur.

CDbl: Çift duyarlı reel sayıya dönüştürür. Dim MyCurr, MyDouble MyCurr = CCur(234.456784) 'MyCurr is a Currency (234.4567).

Page 12: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

12

MyDouble = CDbl(MyCurr*8.2*0.01) 'Convert result to a Double (19.2254576).

Chr: ASCII kodunu karaktere dönüştürür. Dim MyChar MyChar = Chr(65) ' Returns A. MyChar = Chr(97) ' Returns a. MyChar = Chr(62) ' Returns >. MyChar = Chr(37) ' Returns %.

CInt: Tamsayıya dönüştürür. Dim MyDouble, MyInt MyDouble = 2345.5678 ' MyDouble is a Double. MyInt = CInt(MyDouble) ' MyInt contains 2346.

CLng: Uzun tamsayıya dönüştürür Dim MyVal1, MyVal2, MyLong1, MyLong2 MyVal1 = 25427.45: MyVal2=25427.55 ' MyVal1, MyVal2 are Doubles. MyLong1 = CLng(MyVal1) ' MyLong1 contains 25427. MyLong2 = CLng(MyVal2) ' MyLong2 contains 25428.

CSng: Tek duyarlı reel sayıya dönüştürür. Dim MyDouble1, MyDouble2, MySingle1, MySingle2 ' MyDouble1, MyDouble2 are Doubles. MyDouble1 = 75.3421115: MyDouble2 = 75.3421555 MySingle1 = CSng(MyDouble1) ' MySingle1 contains 75.34211. MySingle2 = CSng(MyDouble2) ' MySingle2 contains 75.34216.

CStr: String değere dönüştürür. Dim MyDouble, MyString MyDouble = 437.324 ' MyDouble is a Double. MyString = CStr(MyDouble) ' MyString contains "437.324".

Hex: Verilen onluk tabandaki sayıyı onaltılık tabana çevirir. Dim MyHex MyHex = Hex(5) ' Returns 5. MyHex = Hex(10) ' Returns A. MyHex = Hex(459) ' Returns 1CB.

Oct: Verilen onluk tabandaki sayıyı sekizlik tabana çevirir. Dim MyOct MyOct = Oct(4) ' Returns 4. MyOct = Oct(8) ' Returns 10. MyOct = Oct(459) ' Returns 713.

VBScript’te bir değişken kullanacağımız zaman zorunlu olmasakta tanımlamak gerekir. Bunun önemini aşağıdaki örnekte görelim. <HTML> <HEAD> <TITLE>Untitled Document</TITLE> <SCRIPT language="VBScript"> Sub Topla_onClick() Dim Cevap, Sayi1, Sayi2 Sayi1=CDbl(frmToplam.txtSayi1.Value) Sayi2=CDbl(frmToplam.txtSayi2.Value)

Page 13: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

13

Cevap=Say1+Sayi2 MsgBox "Cevap : "& Cevap End Sub </SCRIPT> </HEAD> <BODY> <PRE> <FORM method="get" name="frmToplam"> 1. Sayı : <INPUT name="txtSayi1" type="text"> 2. Sayı : <INPUT name="txtSayi2" type="text"> </FORM> </PRE> <INPUT name="Topla" type="button" value="Topla"> </BODY> </HTML>

Yukarıdaki örnekte Sayi1 değişkeni yerine yanlışlıkla Say1 kullanılmış ama bu hata gözden kaçmış olabilirdi. Bu tip gözden kaçırmaları önlemek için Script kodlarının başına “Option Explicit” ifadesini yazarız. Bu ifade tanımlanmamış değişken kullanmamızı önleyecektir. Yukarıdaki örneği bir de bu şekilde çalıştırınız.

Değişkenlerin Başlangıç Değerleri Değişken tanımladığımızda herhangi bir değer atamadığımız durumda aşağıdaki başlangıç değerlerine sahiptirler.

Veri Tipi Değer Sayısallar 0 Stringler “” Tarihler 30.12.1899 12:00:00 AM Boolean False

Sabitler Program çalışması anında hiç değişmeyecek şekilde bildirilen değişkenlerdir. Const anahtar kelimesi ile tanımlanır. Const PI=3.14 Alan=PI*YariCap^2

Bazı Sabitler True=-1 False=0 vbCrLf ‘Carriage Return + Line Feed (Satır kırma) vbTab ‘Tab karakteri

MsgBox Fonksiyonu Kullanımı Mesaj penceresidir. MsgBox mesaj [,buttonlar] [,başlık]

Mesaj penceresindeki buttonlara tıklandığında dönecek olan button değerleri bir değişkene atanıp kullanılabilir.

MsgBox ta kullanılacak olan sabitler

Page 14: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

14

Tipi Sabit Değer Açıklama vbOKOnly 0 Sadece Tamam buttonu vbOKCancel 1 Tamam ve İptal buttonu vbAbortRetryIgnore 2 Durdur, Yeniden Dene ve Yoksay buttonu vbYesNoCancel 3 Evet, Hayır ve İptal buttonu vbYesNo 4 Evet ve Hayır buttonu

Butt

on

vbRetryCancel 5 Yeniden Dene ve İptal buttonu vbCritical 16 Hata ikonu gösterir. (X) vbQuestion 32 Soru işareti ikonu gösterir. (?) vbExclamation 48 Uyarı ikonu gösterir. (!) Ic

on

vbInformation 64 Bilgi ikonu gösterir. (İ) vbDefaultButton1 0 vbDefaultButton2 256 vbDefaultButton3 512

vbDefaultButton4 768 vbApplicationModal 0

vbSystemModal 4096

MsgBox’ın döndüreceği değerler

Sabit Değer Açıklama vbOK 1 Tamam vbCancel 2 İptal vbAbort 3 Durdur vbRetry 4 Yeniden Dene vbIgnore 5 Yoksay vbYes 6 Evet vbNo 7 Hayır

Örnek: <HTML> <HEAD> </HEAD> <BODY> <SCRIPT language="VBScript"> Dim i i=MsgBox("MsgBox Uygulaması"& vbCrLf &_ "Şimdi Bir Seçim yapınız",vbOKCancel+_ vbDefButton2+vbInformation) if i=vbOK then document.write "Tamam" else document.write "İptal" end if </SCRIPT> </BODY> </HTML>

Program Akış Kontrolleri • Dallanmalar

Page 15: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

15

• Döngüler

olmak üzere iki şekilde program akışı kontrol edilir.

Dallanma Yapısı

If … Then Verilen bir koşula göre programın akışını yönlendirir. Kullanımı: If [koşul1] Then Koşul doğru ise yapılacak olanlar. ElseIf [koşul2] Koşul1 yanlış ve Koşul2 doğru ise yapılacak olanlar. Else Her iki koşul da yanlış ise yapılacak olanlar. End If

Örnek: <BODY > <H2> <SCRIPT language="VBScript" type="text/VBScript"> <!-- If Time()<#12:00# Then Document.Write "Günaydın!" ElseIf Time()<#18:00# Then Document.Write "Tünaydın!" Else Document.Write "İyi Akşamlar!" End If --> </SCRIPT> </H2> </BODY>

Select Case Bir değişkeni birden fazla değer ile sorgulamada kullanılır. Kullanımı; Select Case [değişken] Case değer1 değer1’e eşit ise yapılacak olanlar Case değer2 değer2’e eşit ise yapılacak olanlar Case Else Hiçbirine eşit değilse yapılacak olanlar. End Select

Örnek: <BODY > <H2> <SCRIPT language="VBScript"> <!-- Dim intSayi Dim strCikis intSayi=InputBox("Alttan Kaç Ders Alıyorsunuz?","Desrs Sayısı Girişi","0") Select Case intSayi

Page 16: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

16

Case 0 strCikis="Aferin Sana. Böyle Devam Et." Case 1 strCikis="Üzülme 1 Ders Önemli Değil Geçersin" Case 2 strCikis="Bu Kadar Da Olmaz Neden Çalışmadın" Case Else strCikis="Söyleyecek Söz Bulamıyorum..." End Select MsgBox(strCikis) --> </SCRIPT> </H2> </BODY>

Soru: Aşağıdaki formu oluşturan ve Gönder buttonuna tıklandığında Adı Soyadı kısmının dolu olup olmadığını şifrelerin tutarlı olup olmadığını mailin geçerli olup olmadığını kontrol eden VBScript kodlamasını da yapınız.

Müşteri Kayıt Formu

<HTML> <HEAD> <SCRIPT language="vbscript"> Function sormail(email) if not isEmpty(email) then if inStr(email,"@") And inStr(email,".") then sormail=true else sormail=false MsgBox "Lütfen Geçerli Bir Email Adresi Girinzi!..." end if end if End Function

Page 17: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

17

Function sorSifre() if Form1.txtSifre1.Value <> "" OR _ Form1.txtSifre2.Value <> "" then if Form1.txtSifre1.Value=Form1.txtSifre2.Value then sorSifre=true else sorSifre=false MsgBox "Şifreniz Birbiriyle uyuşmuyor" Form1.txtSifre1.Value="" Form1.txtSifre2.Value="" end if else MsgBox "Lütfen Şifrenizi Giriiz!..." sorSifre=false end if End Function Function sorAdi() if Form1.txtAdi.Value <> "" then sorAdi=true else sorAdi=false MsgBox "Lütfen Adınızı ve Soyadınızı Giriniz!..." end if End Function </SCRIPT> <SCRIPT language="VBScript"> Sub Button_onClick() if sorAdi() then if sormail(Form1.txtEmail.Value) then if sorSifre() then Form1.Submit end if end if end if End Sub </SCRIPT> </HEAD> <BODY bgcolor="#990000" text="#FFFF00"> <H1>Müşteri Kayıt Formu</H1> <FORM name="form1" method="get" action="kayit.htm"> <TABLE width="75%" border="1"> <TR> <TD width="25%">Adı Soyadı:</TD> <TD width="75%"> <INPUT name="txtAdi" type="text" id="txtAdi"> </TD> </TR> <TR> <TD>Email:</TD> <TD> <INPUT name="txtEmail" type="text" id="txtEmail"> </TD> </TR> <TR> <TD>Şifre:</TD> <TD> <INPUT name="txtSifre1" type="password" id="txtSifre1"> </TD> </TR> <TR>

Page 18: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

18

<TD>Şifre (Tekrar Giriniz):</TD> <TD> <INPUT name="txtSifre2" type="password" id="txtSifre2"> </TD> </TR> <TR> <TD colspan="2"> <INPUT type="button" name="Button" value="Gönder"> <INPUT type="reset" name="Submit2" value="Temizle"> </TD> </TR> </TABLE> </FORM> </BODY> </HTML>

Döngü Yapısı

Do … Loop

Page 19: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

19

Page 20: İnternet Programcılığı-I Ders Notları VBScript · 2012. 5. 11. · İnternet Programcılığı-I Ders Notları VBScript Kaynak Active Server Page (ASP) Professional Skills Devlopment

20

VBSCRİPT’E GİRİŞ ............................................................................................................................2

İSTEMCİ-TARAFI (IT) UYGULAMALARI...............................................................................................2 SUNUCU-TARAFI (ST) UYGULAMARI .................................................................................................2 IT VE ST UYGULAMALARI ARASINDAKİ FARKLAR.............................................................................2 VBSCRİPT...........................................................................................................................................2

<SCRIPT> ve </SCRIPT> Tagları ..............................................................................................3 HTML Açıklama Tagları Niçin Kullanıldı? ..................................................................................3 VBScript’in Temelleri....................................................................................................................3 Değişkenler ...................................................................................................................................3 Açıklamalar ...................................................................................................................................4 Matematiksel Operatör .................................................................................................................4 String Operatörler.........................................................................................................................4 Diğer Operatörler .........................................................................................................................5

PROSEDÜRLER (PROCEDURES)............................................................................................................6 Alt Programlar (Subroutines) .......................................................................................................6

Alt Programı Çağırmak (Calling a Subroutine)........................................................................................ 6 Parametreler İle Alt Program Oluşturma.................................................................................................. 6

Fonksiyonlar (Functions) ..............................................................................................................7 Fonksiyon Oluşturma............................................................................................................................... 7 Parametreli Fonksiyon Oluşturma............................................................................................................ 7

VBSCRİPT FONKSİYONLARI................................................................................................................8 Tarihler ve Zamanlar ....................................................................................................................8

SCRİPTLER NEREYE YAZILIR? ............................................................................................................9 Hemen Yürütülen Skriptler (Immediate Scripts) ...........................................................................9 Çağırılan Skriptler (Global Procedure Scripts) ............................................................................9 Olay Skriptleri (Event Procedure Scripts)...................................................................................10

VERİ TİPLERİ VE DÖNÜŞTÜRÜCÜ FONKSİYONLAR ............................................................................10 Veri Tipleri ..................................................................................................................................10 Dönüştürücü Fonksiyonlar (Conversion Functions) ...................................................................11 Değişkenlerin Başlangıç Değerleri .............................................................................................13 Sabitler ........................................................................................................................................13 MsgBox Fonksiyonu Kullanımı ...................................................................................................13

PROGRAM AKIŞ KONTROLLERİ................................................................................................14 DALLANMA YAPISI ...........................................................................................................................15

If … Then.....................................................................................................................................15 Select Case ..................................................................................................................................15

DÖNGÜ YAPISI..................................................................................................................................18 Do … Loop ..................................................................................................................................18