Merhaba Direk Konuya gireyim.
Visual basic ‘de internet uygulamalari için en çok kullandigim Dönglüler, degiskenler, Functionlar i anlatmayi düsünüyorum. Sanirim bilmeyen arkadaslarin da bir internet uygulamasi ile baslamak isteyecegini düsünüyorum. Bunun için Birkaç temel bilgiyi anlatayim öncelikle. Bu yazim umarim bir seri haline gelir. Ve bu Serinin Ilk’i. J
Öncelikle Birkaç Temel seyle baslayalim,
Len Lentgh(genislik) anlamindadir. Bir degiskenin yada yazinin kaç karakter oldugunu sayar.
Örnek Kullanimi:
A = Len(“Bu Bir Denemedir”)
Yukarida A esittir “Bu Bir Denemedir” Yazisinin Genisligine uzunluguna karakter sayisina demektir.
Bu durumda A Ne olur ? Sayalim. “Bu Bir Denemedir” A nin degeri 16 dir. Ama 14 karakter var. Aslinda dogru olani ise 16 dir. Dikkat edilmesi Gereken Husus ise Bosluklar da bir karakter dir.
Left Degiskenin Soldan Alinmak istenen Karekteri için kullanilir.
A = Left(“Bu Bir Denemedir”,3) dikkat edin Önce degiskeni verdik, Ardindan ise”,” isareti ve kaç karakter aldirmak istiyor isek Virgül den sonra yazip parantezi kapatiyoruz. Burada A = Ne olur ? “Bu “ Olur dikkat ederseniz 3 dedik, Ama 2 karakter aldi, üçüncü karakter bostur. “Bu “
Right Degiskenin Sagindan Alinmak istenen karakter için kullanilir.
A = Right(“Bu Bir denemedir”,3) Burada ise a nin degeri Sagdanilk üç karakter dir. Yani
a = “dir”
Mid Degiskenin ne sagindan ne de solundan yani farz edelimki degiskenimiz “Bu Bir Denemedir” olsun ve biz “Bu ” dan sonraki yeri almak istiyor isek kullaniriz.
A = Mid(“Bu Bir Denemedir”,1 , 5 ) Burada Iki sayi girmemizin sebebi Degiskenimizin Hangi karakterinden baslayip Hangi karakterine Kadar olan yerini belirlemek içindir.
A’nin degeri ise “Bu Bi” oldu. Bosluklara dikkat edin.
Msgbox Mesaj kutusu
Örnek kullanimi :
Msgbox (“Bu bir Denemedir”) Bu bize içinde Bu Bir denemedir yazan Mesaj kutusu gösterir.
Msgbox Mid(“Bu Bir Denemedir”,1 , 5 ) Bu ise Bize Içinde “Bu Bi” yazan mesaj kutusu gösteriri.
Simdi IF Kosuluna bakalim
If kosul Then
buraya kosul tutuyor ise yapilmasini istediginiz seyleri yaziyorsunuz
End if
Seklinde kullanilir. Örnek verecek olur isek
If a = “Bu Bi” Then ’Eger a Bu Bi ye denk ise
Msgbox “A BU BI dir” ‘ Mesaj kutusunda “A Bu Bi dir.” Yaz
End if ‘ Eger Bitti
Yukarida ki örnegi iyi inceleyin. If in sözlük anlami Eger dir.
Baska bir örnek ile de gösterelim
If a < 10 then ‘ eger A 10 dan küçük ise
Msgbox “ 10 dan küçük bir sayi” ‘ Mesaj kutusunda “10 dan küçük bir sayi yaz”
Else ‘ degilse yani a < 10 degil ise
Msgbox “10 Dan büyük bir sayi” ‘ Mesaj kutusunda 10 dan büyük bir sayi yaz
End if ‘ Bitti
Umarim anlamissinizdir. Çünkü Yukaridakiler en temel bilgilerdir. Asagida Biraz daha gelismis halini yapacagiz.
Vb de bos Bir standart form Açin. Ve iki tane Textbox , ekleyin. Ardindan formun Code kismina gelin. ( Sagla Tiklayip View Code deyin.) Ve üst de bulunan iki açilir menü den ilkini Form ikincisini ise Load a ayarlayin. Ekranda asagidaki yazi belirecektir. Ve siz imleci iki satir arasindaki bir bosluga getirin.
Private Sub Form_Load()
End Sub
Ve sunu yazin.
Private Sub Form_Load()
If text1 = text2 Then ‘ Text1 ile text2 bir birine denk ise
Msgbox (“Text1 ile text2 ayni”) ‘mesaj kutusunda aynidir yazisisini yaz
End if ‘kosul bitti
End Sub
Sonra F5 e basarak Çalistirin. Hiçbir mesaj vermedi ? Neden ? Çünkü text1 text2 ile ayni degil. Içerisinde yazanlar farkli. Ozaman su sekilde yazalim. Gene Private Sub Form _Load() kismina yaziyoruz. Nedeni ise form açilirken( program açilirken). Yapilmasini istedigimiz için. Dilerseniz Private sbu Form_unload() a yazarsaniz. Program kanirken yapacaktir bu islemi.
Private Sub Form_Load()
If text1 = text2 Then ‘ Text1 ile text2 bir birine denk ise
Msgbox (“Text1 ile text2 ayni”) ‘mesaj kutusunda aynidir yazisisini yaz
Else
Msgbox (“iki yazi da birbirinden farklidir”)
End if ‘kosul bitti
End Sub
Yukarida sadece Else ekledik. Sebebi Yazdigimiz kod sadece iki kutu bir birine denk ise msjkutusu açiyordu. Else diyerek bir birine nedk degil se de bir katu açtirip içine diledigimiz seyi yazdirabiliriz.
Simdi Baska bir Kosul ile Anlatmayi deneyeyim.
Private Sub Form_Load()
If Len(text1) = Len(text2) Then ‘ Text1 ile text2 nin karakter sayilari bir birine denk ise
Msgbox (“Karakter Sayilari Esit”) ‘mesaj kutusunda aynidir yazisisini yaz
Else
Msgbox (“iki yazinin karakter sayilari birbirinden farklidir”)
End if ‘kosul bitti
End Sub
Simdi De Ilk karakterleri ayni ise Istedigimizi yaptirmayi deneyelim.
Private Sub Form_Load()
If Left(text1,1) = Left(text2,1) Then ‘ Text1 ile text2 nin ilk karakterleri ayni ise
Msgbox Left(text1,1) & “ Ilk karakterdir.” ‘ilk karakteri kutula
Else ‘ degil ise
Msgbox “text1 in ilk karakteri ” Left(text1,1) & “dir” & “ text2 nin ilk karakteri” & Left(text2,1) & “dir.” ‘ Karakterleri Göster
End if ‘kosul bitti
End Sub
Devami yakinda….
Tekrardan Merhaba Bir önceki konuda unutmusum yazmayi,
Val (Value(Deger)) degiskenin Sayisal degerini alir.
Mesela Text Kutumuzda 15a12 yaziyor. Sayisal degerini alalim
Msgbox Val(text1) dedigimiz zaman bize sadece 15 i verir.
Yada bir deger okuturken bunu degisken yapmak hem kodu uzatir hemde bellekte fazla yer kaplar.
Örnegin Regeditten Bi akyit okuyazagiz ama bu nu önce degiskene atip sonra kullanmak uzun sürer ve kasar. Onun yerine Val komutu ile degisken tanimlamamiza gerek kalmadan isimizi
görürüz. Veya kullanici Sayi yazmasi gereken yere Harf yazar Val(“deneme”) seklinde ise Degerimiz 0 olur.
Int Integer Tamsayi, girilen degerin Tamsayisini alir. Örnek,
MsgBox Int("15,499") Küsürati siler ve sonuç 15 olur,
Select Case
ilk makalemde If ile kosullamayi anlatmistim.simdi ise daha kolay bir kosulama anlatacagim.
Örnek problem : 1 ile 100 arasi bir sayi Girilsin 1-20 arasi için zayif 20 – 40 arasi icin kotu 40 – 60 arasi için geçer, 60 – 80 arasi iyi, 80 -100 arasi icin ise Pekiyi olan bir Kosul kuralim.
Problemi nasil cozeriz, once sayiyi bulmamiz lazim sonra da karsilastirmamiz lazim.
Eger if kosulu ile yapmis olsaydik
Dim sayi as byte ‘ sayi adinda bir degisken tanimladim ama türü byte olacak sekilde, Byte Türü 0 ile 255 e kadardir. 256 yazilirsa Buffer overfollow hatasi veririr.
Sayi = val(text1) ‘ tanimladigim Sayi degiskenine Text1 e girilen degeri atadim
If sayi > 0 and sayi < 20 then
Msgbox “Sonuç zayif”
End if
If sayi >20 and sayi < 40 then
Msgbox “Sonuç Kötü”
End if
If sayi >40 and sayi < 60 then
Msgbox “Sonuç Geçer”
End if
If sayi >60 and sayi < 80 then
Msgbox “Sonuç iyi”
End if
If sayi >80 and sayi < 100 then
Msgbox “Sonuç Pekiyi”
End if
Gördügünüz gibi Baya bir uzun sürüyor, sadece 5 kosul yaptik oysa , Düsünsenize Ya 100 kosul kullanacak olsaydik .
Simdi Case Olayini ile nasil yapacagiz onu anlatayim.
Private Sub Form_Load()
Select Case Val(Text1) ‘ Case e Text1 in degerini aldiriyoruz ve artik case imizi text1 in degeri olarak düsünebilirsiniz.
Case 0 To 20: MsgBox "ZAYIF" ‘Case 0 – 20 arasi ise yazimizi yazdiriyoruz
Case 20 To 40: MsgBox "kötü"
Case 40 To 60: MsgBox "Geçer"
Case 60 To 80: MsgBox "Iyi"
Case 80 To 100: MsgBox "iyi"
End Select ‘ Seçimimizi bitiriyoruz
End Sub
Bu Kadar bir kod ile isimiz bitiyor, If aslinda Daha güzeldir ama Çok fazla kosul kullanacak iseniz Case i tercih etmelisiniz.
Baska bir Case Örnegi
Select Case Text1
Case "Text1": MsgBox "Yazimiz Text1 dir"
Case "Deneme": MsgBox "Yazimiz Denemedir."
Case "": MsgBox "Yazimiz bostur."
End Select
.
Select Case Seçim
Case “denkse” : yapilacak islem
Case 0 to 50 : yapilacak islem
Case > 100 : yapilacak islem
End Select
Gibi kosullari çogaltabiliriz.
Bu makale de Son Olarakda Projelerimizde Bir Programi Çalistirmakdan bahsedelim. Bir programi çalistirmak için Shell komutu Kullanilir. Örnek olarak asagiya bakabilirsniz.
Dim calistir
Calistir = Shell(“c:\windows\notepad.exe”)
Yada
calistir = shell(“c:\windows\notepad.exe c:\io.sys”) ‘notepad a io.sys açtirir.
Windows Xp de busekilde Çalismiyor J basima geldi oradan biliyorum onda ise
Call Shell(“c:\windows\notepad.exe c:\io.sys”)
Seklinde Kullanabilirsiniz.
Tekrardan Kolay Gelsin… Devami Yakinda….