ByVal ve ByRef olayı Sub rutinlerinde parametre olarak gönderilen değişkenin değerinin geri dönderilip dönderilmeyeceğini anlatıyor.
byVal (by value) değeriyle
byRef (by reference) referansı ile
Fonksiyonlar, Sınıflar ve Sub rutinleri belirli işleri yapabilmek için komutları, değişkenleri algoritmaları bir araya getirmeye yarar.
Bunlar arasında son derece temel farklar vardır.
Sub rutinimizinAdi(parametreler)
End sub
şeklindeki kullanımında parametre olarak gönderilen değişkenler
byVal gönderilirse değer sadece sub içinde kullanılıyor ve public etkisi olmuyor.
byRef gönderilirse kendisine gönderilen değişkenin değerini değiştirdiğinde public olarak etki ediyor.
Örnek:
sayimiz = 5
Sub degis(byVal benimSayi)
sayimiz = 9
End sub
msgbox(degis(sayimiz)) ' Mesaj kutusunda 5 yazacak 9 değil
Sub degis(byRef benimSayi)
sayimiz = 9
End sub
msgbox(degis(sayimiz)) ' Mesaj kutusunda 9 yazacak 5 değil
byrefbyvalsubsub rutinlerisub routinsbyref ile byval farkiID:246 | Okunma:618
Çoğu yerde elimizdeki bir metin veya sayının bir dizi içinde yer alıp almadığını bilmemiz gerekebilir.
Bunun için yazılan minik bir asp ve vbs betiği.
ASP&Vbscript:
function dizielemanimi(eleman,dizi)
sonucBild=0
If IsArray(dizi) And eleman<>"" Then
For ix=0 To UBound(dizi)
If CStr(eleman) = CStr(dizi(ix)) Then
sonucBild = 1
End if
Next
Else
Exit function
End if
dizielemanimi = sonucBild
End function
'Kullanımı if dizininelemanimi(dizimiz,eleman)=1 then
diziarraydizininelemanimiis an element of an arrayarray element checkID:234 | Okunma:82
Aşağıda XMLHTTP ve ADODB.Stream kullanılarak bir dosyayı internetten indirmeyi örnekleyen bir kod var. Kodu .vbs uzantısı ile kaydedip çalıştırdığınızda adresini verdiğiniz herhangi bir dosyayı indirebilir. Script kendi bulunduğu klasöre indirir. Örneği kullanarak binlerce farklı uygulama yazılabilir.
cURL = InputBox("İndirilecek nesnenin tam adresini giriniz!!!")
Dim strDIR
strDIR = WScript.ScriptFullName
strDIR = Left(strDIR,InStrRev(strDIR,"\"))
Dim strFIL
strFIL = Mid(cURL,InStrRev(cURL,"/")+1)
Dim objADO
Set objADO = CreateObject("ADODB.Stream")
Dim objXML
Set objXML = CreateObject("Microsoft.XMLHTTP")
objXML.Open "GET", cURL, False
objXML.Send
If Err.Number = 0 And objXML.Status = 200 Then
objADO.Type = 1
objADO.Open
objADO.Write objXML.ResponseBody
objADO.SaveToFile strDIR & strFIL,2
booMSG = True
End If
Set objADO = Nothing
Set objXML = Nothing
objadoobjxmlcreateobjectadodb.streammicrosoft.xmlhttpobjado.writeobjado.savewscriptobjxml.openID:120 | Okunma:291
VBscript ile mini bir çok (2) boyutlu dizi denemesi önerisi. Matrisler ve dev diziler için farklı ve daha güzel mantıklar vardır.
dim diZi(2)
diZi(0) = array(2343,678,67862)
diZi(1) = array("Ankara","Adana","İstanbul")
diZi(2) = array("Araç", "Defne", "Zürafa", "Armut", "Kestane")
msgbox diZi(1)(2) ' sonuç "İstanbul"
diziarraycok boyutlu dizimulti dimension arrayID:119 | Okunma:455
|