VBScript教程_第1頁
VBScript教程_第2頁
VBScript教程_第3頁
VBScript教程_第4頁
VBScript教程_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、vbscript教程目錄microsoft visual basic scripting edition 是程序開發(fā)語言 visual basic 家族的最新成員,它將靈活的 script 應(yīng)用于更廣泛的領(lǐng)域,包括 microsoft internet explorer 中的web 客戶機 script 和 microsoft internet information server 中的 web 服務(wù)器 script。第一課 什么是 vbscript第二課 在html頁面中添加vbscript代碼第三課 vbscript數(shù)據(jù)類型第四課 vbscript變量第五課 vbscript常數(shù)第六課 v

2、bscript運算符第七課 使用條件語句第八課 使用循環(huán)語句第九課 vbscript過程第十課 vbscript編碼約定第十一課 深入vbscript第十二課 vbscript頁面的簡單樣例第十三課 vbscript與窗體第十四課 在vbscript中使用對象附錄 vbscript函數(shù)參考第一課 什么是 vbscriptmicrosoft visual basic scripting edition 是程序開發(fā)語言 visual basic 家族的最新成員,它將靈活的 script 應(yīng)用于更廣泛的領(lǐng)域,包括 microsoft internet explorer 中的 web 客戶機 scri

3、pt 和 microsoft internet information server 中的 web 服務(wù)器 script。 易學(xué)易用如果您已了解 visual basic 或 visual basic for applications,就會很快熟悉 vbscript。即使您沒有學(xué)過 visual basic,只要學(xué)會 vbscript,就能夠使用所有的 visual basic 語言進(jìn)行程序設(shè)計。雖然您可以從本教程的幾個 web 頁面中學(xué)習(xí) vbscript,但是本教程并沒有告訴您如何編程。要學(xué)習(xí)編程,請閱讀由 microsoft press 出版的step by step。activex s

4、criptvbscript 使用 activex script 與宿主應(yīng)用程序?qū)υ?。使?activex script,瀏覽器和其他宿主應(yīng)用程序不再需要每個 script 部件的特殊集成代碼。activex script 使宿主可以編譯 script、獲取和調(diào)用入口點及管理開發(fā)者可用的命名空間。通過 activex script,語言廠商可以建立標(biāo)準(zhǔn) script 運行時語言。microsoft 將提供 vbscript 的運行時支持。microsoft 正在與多個 internet 組一起定義 activex script 標(biāo)準(zhǔn)以使 script 引擎可以互換。 activex script

5、 可用在 microsoft internet explorer 和 microsoft internet information server 中。其他應(yīng)用程序和瀏覽器中的vbscript作為開發(fā)者,您可以在您的產(chǎn)品中免費使用 vbscript 源實現(xiàn)程序。microsoft 為 32 位 windows api、16 位 windows api 和 macintosh 提供 vbscript 的二進(jìn)制實現(xiàn)程序。vbscript 與 world wide web 瀏覽器集成在一起。vbscript 和 activex script 也可以在其他應(yīng)用程序中作為普通 script 語言使用。第二

6、課 在html頁面中添加vbscript代碼script 元素用于將 vbscript 代碼添加到 html 頁面中。 標(biāo)記vbscript 代碼寫在成對的 標(biāo)記之間。例如,以下代碼為一個測試傳遞日期的過程: 2end function-代碼的開始和結(jié)束部分都有 標(biāo)記。language 屬性用于指定所使用的 script 語言。由于瀏覽器能夠使用多種 script 語言,所以必須在此指定所使用的 script 語言。注意 candeliver 函數(shù)被嵌入在注釋標(biāo)記()中。這樣能夠避免不能識別 標(biāo)記的瀏覽器將代碼顯示在頁面中。因為以上示例是一個通用函數(shù)(不依賴于任何窗體控件),所以可以將其包含在

7、頁面的 head 部分: 訂購 2end function-.script 塊可以出現(xiàn)在 html 頁面的任何地方(body 或 head 部分之中)。然而最好將所有的一般目標(biāo) script 代碼放在 head 部分中,以使所有 script 代碼集中放置。這樣可以確保在 body 部分調(diào)用代碼之前所有 script 代碼都被讀取并解碼。 上述規(guī)則的一個值得注意的例外情況是,在窗體中提供內(nèi)部代碼以響應(yīng)窗體中對象的事件。例如,以下示例在窗體中嵌入 script 代碼以響應(yīng)窗體中按鈕的單擊事件:測試按鈕事件msgbox 按鈕被單擊!大多數(shù) script 代碼在 sub 或 function 過程中

8、,僅在其他代碼要調(diào)用它時執(zhí)行。然而,也可以將 vbscript 代碼放在過程之外、script 塊之中。這類代碼僅在 html 頁面加載時執(zhí)行一次。這樣就可以在加載 web 頁面時初始化數(shù)據(jù)或動態(tài)地改變頁面的外觀。第三課 vbscript數(shù)據(jù)類型什么是 vbscript 數(shù)據(jù)類型?vbscript 只有一種數(shù)據(jù)類型,稱為 variant。variant 是一種特殊的數(shù)據(jù)類型,根據(jù)使用的方式,它可以包含不同類別的信息。因為 variant 是 vbscript 中唯一的數(shù)據(jù)類型,所以它也是 vbscript 中所有函數(shù)的返回值的數(shù)據(jù)類型。最簡單的 variant 可以包含數(shù)字或字符串信息。var

9、iant 用于數(shù)字上下文中時作為數(shù)字處理,用于字符串上下文中時作為字符串處理。這就是說,如果使用看起來象是數(shù)字的數(shù)據(jù),則 vbscript 會假定其為數(shù)字并以適用于數(shù)字的方式處理。與此類似,如果使用的數(shù)據(jù)只可能是字符串,則 vbscript 將按字符串處理。當(dāng)然,也可以將數(shù)字包含在引號 ( ) 中使其成為字符串。variant 子類型除簡單數(shù)字或字符串以外,variant 可以進(jìn)一步區(qū)分?jǐn)?shù)值信息的特定含義。例如使用數(shù)值信息表示日期或時間。此類數(shù)據(jù)在與其他日期或時間數(shù)據(jù)一起使用時,結(jié)果也總是表示為日期或時間。當(dāng)然,從 boolean 值到浮點數(shù),數(shù)值信息是多種多樣的。variant 包含的數(shù)值信

10、息類型稱為子類型。大多數(shù)情況下,可將所需的數(shù)據(jù)放進(jìn) variant 中,而 variant 也會按照最適用于其包含的數(shù)據(jù)的方式進(jìn)行操作。 下表顯示variant包含的數(shù)據(jù)子類型: 子類型描 述empty未初始化的 variant。對于數(shù)值變量,值為 0;對于字符串變量,值為零長度字符串 ()。null不包含任何有效數(shù)據(jù)的 variant。boolean包含 true 或 false。byte包含 0 到 255 之間的整數(shù)。integer包含 -32,768 到 32,767 之間的整數(shù)。currency-922,337,203,685,477.5808 到 922,337,203,685,4

11、77.5807。long包含 -2,147,483,648 到 2,147,483,647 之間的整數(shù)。single包含單精度浮點數(shù),負(fù)數(shù)范圍從 -3.402823e38 到 -1.401298e-45,正數(shù)范圍從 1.401298e-45 到 3.402823e38。double包含雙精度浮點數(shù),負(fù)數(shù)范圍從 -1.79769313486232e308 到 -4.94065645841247e-324,正數(shù)范圍從 4.94065645841247e-324 到 1.79769313486232e308。date (time)包含表示日期的數(shù)字,日期范圍從公元 100 年 1 月 1 日到公元

12、9999 年 12 月 31 日。string包含變長字符串,最大長度可為 20 億個字符。object包含對象。error包含錯誤號。 您可以使用轉(zhuǎn)換函數(shù)來轉(zhuǎn)換數(shù)據(jù)的子類型。另外,可使用 vartype 函數(shù)返回數(shù)據(jù)的 variant 子類型。第四課 vbscript變量什么是變量?變量是一種使用方便的占位符,用于引用計算機內(nèi)存地址,該地址可以存儲 script 運行時可更改的程序信息。例如,可以創(chuàng)建一個名為 clickcount 的變量來存儲用戶單擊 web 頁面上某個對象的次數(shù)。使用變量并不需要了解變量在計算機內(nèi)存中的地址,只要通過變量名引用變量就可以查看或更改變量的值。在 vbscri

13、pt 中只有一個基本數(shù)據(jù)類型,即 variant,因此所有變量的數(shù)據(jù)類型都是 variant。聲明變量聲明變量的一種方式是使用 dim 語句、public 語句和 private 語句在 script 中顯式聲明變量。例如:dim degreesfahrenheit聲明多個變量時,使用逗號分隔變量。例如:dim top, bottom, left, right另一種方式是通過直接在 script 中使用變量名這一簡單方式隱式聲明變量。這通常不是一個好習(xí)慣,因為這樣有時會由于變量名被拼錯而導(dǎo)致在運行 script 時出現(xiàn)意外的結(jié)果。因此,最好使用 option explicit 語句顯式聲明所有

14、變量,并將其作為 script 的第一條語句。命名規(guī)則變量命名必須遵循 vbscript 的標(biāo)準(zhǔn)命名規(guī)則。變量命名必須遵循: 第一個字符必須是字母。不能包含嵌入的句點。 長度不能超過 255 個字符。在被聲明的作用域內(nèi)必須唯一。 變量的作用域與存活期變量的作用域由聲明它的位置決定。如果在過程中聲明變量,則只有該過程中的代碼可以訪問或更改變量值,此時變量具有局部作用域并被稱為過程級變量。如果在過程之外聲明變量,則該變量可以被 script 中所有過程所識別,稱為 script 級變量,具有 script 級作用域。 變量存在的時間稱為存活期。script 級變量的存活期從被聲明的一刻起,直到 s

15、cript 運行結(jié)束。對于過程級變量,其存活期僅是該過程運行的時間,該過程結(jié)束后,變量隨之消失。在執(zhí)行過程時,局部變量是理想的臨時存儲空間??梢栽诓煌^程中使用同名的局部變量,這是因為每個局部變量只被聲明它的過程識別。給變量賦值創(chuàng)建如下形式的表達(dá)式給變量賦值:變量在表達(dá)式左邊,要賦的值在表達(dá)式右邊。例如:b = 200標(biāo)量變量和數(shù)組變量多數(shù)情況下,只需為聲明的變量賦一個值。只包含一個值的變量被稱為標(biāo)量變量。有時候,將多個相關(guān)值賦給一個變量更為方便,因此可以創(chuàng)建包含一系列值的變量,稱為數(shù)組變量。數(shù)組變量和標(biāo)量變量是以相同的方式聲明的,唯一的區(qū)別是聲明數(shù)組變量時變量名后面帶有括號 ( )。下例聲明

16、了一個包含 11 個元素的一維數(shù)組:dim a(10)雖然括號中顯示的數(shù)字是 10,但由于在 vbscript 中所有數(shù)組都是基于 0 的,所以這個數(shù)組實際上包含 11 個元素。在基于 0 的數(shù)組中,數(shù)組元素的數(shù)目總是括號中顯示的數(shù)目加 1。這種數(shù)組被稱為固定大小的數(shù)組。 在數(shù)組中使用索引為數(shù)組的每個元素賦值。從 0 到 10,將數(shù)據(jù)賦給數(shù)組的元素,如下所示: a(0) = 256a(1) = 324a(2) = 100. . .a(10) = 55與此類似,使用索引可以檢索到所需的數(shù)組元素的數(shù)據(jù)。例如:. . . somevariable = a(8) . . . 數(shù)組并不僅限于一維。數(shù)組的

17、維數(shù)最大可以為 60(盡管大多數(shù)人不能理解超過 3 或 4 的維數(shù))。聲明多維數(shù)組時用逗號分隔括號中每個表示數(shù)組大小的數(shù)字。在下例中,mytable 變量是一個有 6 行和 11 列的二維數(shù)組:dim mytable(5, 10)在二維數(shù)組中,括號中第一個數(shù)字表示行的數(shù)目,第二個數(shù)字表示列的數(shù)目。也可以聲明動態(tài)數(shù)組,即在運行 script 時大小發(fā)生變化的數(shù)組。對數(shù)組的最初聲明使用 dim 語句或 redim 語句。但是對于動態(tài)數(shù)組,括號中不包含任何數(shù)字。例如:dim myarray()redim anotherarray()要使用動態(tài)數(shù)組,必須隨后使用 redim 確定維數(shù)和每一維的大小。在

18、下例中,redim 將動態(tài)數(shù)組的初始大小設(shè)置為 25,而后面的 redim 語句將數(shù)組的大小重新調(diào)整為 30,同時使用 preserve 關(guān)鍵字在重新調(diào)整大小時保留數(shù)組的內(nèi)容。 redim myarray(25). . . redim preserve myarray(30)重新調(diào)整動態(tài)數(shù)組大小的次數(shù)是沒有任何限制的,但是應(yīng)注意:將數(shù)組的大小調(diào)小時,將會丟失被刪除元素的數(shù)據(jù)。 第五課 vbscript常數(shù)什么是常數(shù)?常數(shù)是具有一定含義的名稱,用于代替數(shù)字或字符串,其值從不改變。vbscript 定義了許多固有常數(shù)。詳細(xì)信息,請參閱 vbscript 語言參考。 創(chuàng)建常數(shù)您可以使用 const

19、語句在 vbscript 中創(chuàng)建用戶自定義常數(shù)。使用 const 語句可以創(chuàng)建名稱具有一定含義的字符串型或數(shù)值型常數(shù),并給它們賦原義值。例如:const mystring = 這是一個字符串。const myage = 49請注意字符串文字包含在兩個引號 ( ) 之間。這是區(qū)分字符串型常數(shù)和數(shù)值型常數(shù)的最明顯的方法。日期文字和時間文字包含在兩個井號 (#) 之間。例如:const cutoffdate = #6-1-97#最好采用一個命名方案以區(qū)分常數(shù)和變量。這樣可以避免在運行 script 時對常數(shù)重新賦值。例如,可以使用“vb”或“con”作常數(shù)名的前綴,或?qū)⒊?shù)名的所有字母大寫。將常數(shù)和

20、變量區(qū)分開可以在開發(fā)復(fù)雜的 script 時避免混亂。 第六課 vbscript運算符vbscript 有一套完整的運算符,包括算術(shù)運算符、比較運算符、連接運算符和邏輯運算符。運算符優(yōu)先級當(dāng)表達(dá)式包含多個運算符時,將按預(yù)定順序計算每一部分,這個順序被稱為運算符優(yōu)先級??梢允褂美ㄌ栐竭^這種優(yōu)先級順序,強制首先計算表達(dá)式的某些部分。運算時,總是先執(zhí)行括號中的運算符,然后再執(zhí)行括號外的運算符。但是,在括號中仍遵循標(biāo)準(zhǔn)運算符優(yōu)先級。 當(dāng)表達(dá)式包含多種運算符時,首先計算算術(shù)運算符,然后計算比較運算符,最后計算邏輯運算符。所有比較運算符的優(yōu)先級相同,即按照從左到右的順序計算比較運算符。算術(shù)運算符和邏輯運算

21、符的優(yōu)先級如下所示:算術(shù)運算符比較運算符邏輯運算符描 述符號描 述符號描 述符號求冪等于=邏輯非not負(fù)號-不等于邏輯與and乘*小于邏輯異或xor整除小于等于=邏輯隱含imp加+對象引用比較is減-字符串連接&當(dāng)乘號與除號同時出現(xiàn)在一個表達(dá)式中時,按從左到右的順序計算乘、除運算符。同樣當(dāng)加與減同時出現(xiàn)在一個表達(dá)式中時,按從左到右的順序計算加、減運算符。 字符串連接 (&) 運算符不是算術(shù)運算符,但是在優(yōu)先級順序中,它排在所有算術(shù)運算符之后和所有比較運算符之前。is 運算符是對象引用比較運算符。它并不比較對象或?qū)ο蟮闹?,而只是進(jìn)行檢查,判斷兩個對象引用是否引用同一個對象。 第七課 使用條件語句

22、控制程序執(zhí)行使用條件語句和循環(huán)語句可以控制 script 的流程。使用條件語句可以編寫進(jìn)行判斷和重復(fù)操作的 vbscript 代碼。在 vbscript 中可使用以下條件語句: if.then.else 語句 select case 語句 使用 if.then.else 進(jìn)行判斷if.then.else 語句用于計算條件是否為 true 或 false,并且根據(jù)計算結(jié)果指定要運行的語句。通常,條件是使用比較運算符對值或變量進(jìn)行比較的表達(dá)式。有關(guān)比較運算符的詳細(xì)信息,請參閱比較運算符。if.then.else 語句可以按照需要進(jìn)行嵌套。 條件為 true 時運行語句要在條件為 true 時運行單

23、行語句,可使用 if.then.else 語句的單行語法。下例示范了單行語法。請注意此例省略了關(guān)鍵字 else。sub fixdate()dim mydatemydate = #2/13/95#if mydate 10mynum = mynum 1counter = counter + 1loopmsgbox 循環(huán)重復(fù)了 & counter & 次。end subsub chklastwhile()dim counter, mynumcounter = 0mynum = 9domynum = mynum - 1counter = counter + 1loop while mynum 10ms

24、gbox 循環(huán)重復(fù)了 & counter & 次。end sub重復(fù)執(zhí)行語句直到條件變?yōu)?trueuntil 關(guān)鍵字用于檢查 do.loop 語句中的條件。有兩種方式檢查條件:在進(jìn)入循環(huán)之前檢查條件(如下面的 chkfirstuntil 示例);或者在循環(huán)至少運行完一次之后檢查條件(如下面的 chklastuntil 示例)。只要條件為 false,就會進(jìn)行循環(huán)。sub chkfirstuntil()dim counter, mynumcounter = 0mynum = 20do until mynum = 10mynum = mynum 1counter = counter + 1loop

25、msgbox 循環(huán)重復(fù)了 & counter & 次。end subsub chklastuntil()dim counter, mynumcounter = 0mynum = 1domynum = mynum + 1counter = counter + 1loop until mynum = 10msgbox 循環(huán)重復(fù)了 & counter & 次。end sub退出循環(huán)exit do 語句用于退出 do.loop 循環(huán)。因為通常只是在某些特殊情況下要退出循環(huán)(例如要避免死循環(huán)),所以可在 if.then.else 語句的 true 語句塊中使用 exit do 語句。如果條件為 fals

26、e,循環(huán)將照常運行。 在下面的示例中,mynum 的初始值將導(dǎo)致死循環(huán)。if.then.else 語句檢查此條件,防止出現(xiàn)死循環(huán)。sub exitexample()dim counter, mynumcounter = 0mynum = 9do until mynum = 10mynum = mynum 1counter = counter + 1if mynum 10 then exit doloopmsgbox 循環(huán)重復(fù)了 & counter & 次。end sub使用 while.wendwhile.wend 語句是為那些熟悉其用法的用戶提供的。但是由于 while.wend 缺少靈活性

27、,所以建議最好使用 do.loop 語句。 使用 for.nextfor.next 語句用于將語句塊運行指定的次數(shù)。在循環(huán)中使用計數(shù)器變量,該變量的值隨每一次循環(huán)增加或減少。例如,下面的示例將過程 myproc 重復(fù)執(zhí)行 50 次。for 語句指定計數(shù)器變量 x 及其起始值與終止值。next 語句使計數(shù)器變量每次加 1。sub domyproc50times()dim xfor x = 1 to 50myprocnextend sub關(guān)鍵字 step 用于指定計數(shù)器變量每次增加或減少的值。在下面的示例中,計數(shù)器變量 j 每次加 2。循環(huán)結(jié)束后,total 的值為 2、4、6、8 和 10 的總

28、和。 sub twostotal()dim j, totalfor j = 2 to 10 step 2total = total + jnextmsgbox 總和為 & total & 。end sub要使計數(shù)器變量遞減,可將 step 設(shè)為負(fù)值。此時計數(shù)器變量的終止值必須小于起始值。在下面的示例中,計數(shù)器變量 mynum 每次減 2。循環(huán)結(jié)束后,total 的值為 16、14、12、10、8、6、4 和 2 的總和。sub newtotal()dim mynum, totalfor mynum = 16 to 2 step 2total = total + mynumnextmsgbox

29、總和為 & total & 。end subexit for 語句用于在計數(shù)器達(dá)到其終止值之前退出 for.next 語句。因為通常只是在某些特殊情況下(例如在發(fā)生錯誤時)要退出循環(huán),所以可以在 if.then.else 語句的 true 語句塊中使用 exit for 語句。如果條件為 false,循環(huán)將照常運行。使用 for each.nextfor each.next 循環(huán)與 for.next 循環(huán)類似。for each.next 不是將語句運行指定的次數(shù),而是對于數(shù)組中的每個元素或?qū)ο蠹现械拿恳豁椫貜?fù)一組語句。這在不知道集合中元素的數(shù)目時非常有用。 在以下示例中,dictionary

30、 對象的內(nèi)容用于將文本分別放置在多個文本框中: 窗體與元素form name=frmform第九課 vbscript過程過程分類在 vbscript 中,過程被分為兩類:sub 過程和 function 過程。 sub 過程sub 過程是包含在 sub 和 end sub 語句之間的一組 vbscript 語句,執(zhí)行操作但不返回值。sub 過程可以使用參數(shù)(由調(diào)用過程傳遞的常數(shù)、變量或表達(dá)式)。如果 sub 過程無任何參數(shù),則 sub 語句必須包含空括號 ()。下面的 sub 過程使用兩個固有的(或內(nèi)置的)vbscript 函數(shù),即 msgbox 和 inputbox,來提示用戶輸入信息。然后

31、顯示根據(jù)這些信息計算的結(jié)果。計算由使用 vbscript 創(chuàng)建的 function 過程完成。此過程在以下討論之后演示。 sub converttemp()temp = inputbox(請輸入華氏溫度。, 1)msgbox 溫度為 & celsius(temp) & 攝氏度。end subfunction 過程function 過程是包含在 function 和 end function 語句之間的一組 vbscript 語句。function 過程與 sub 過程類似,但是 function 過程可以返回值。function 過程可以使用參數(shù)(由調(diào)用過程傳遞的常數(shù)、變量或表達(dá)式)。如果 f

32、unction 過程無任何參數(shù),則 function 語句必須包含空括號 ()。function 過程通過函數(shù)名返回一個值,這個值是在過程的語句中賦給函數(shù)名的。function 返回值的數(shù)據(jù)類型總是 variant。 在下面的示例中,celsius 函數(shù)將華氏度換算為攝氏度。sub 過程 converttemp 調(diào)用此函數(shù)時,包含參數(shù)值的變量被傳遞給函數(shù)。換算結(jié)果返回到調(diào)用過程并顯示在消息框中。sub converttemp()temp = inputbox(請輸入華氏溫度。, 1)msgbox 溫度為 & celsius(temp) & 攝氏度。end subfunction celsius

33、(fdegrees)celsius = (fdegrees - 32) * 5 / 9end function過程的數(shù)據(jù)進(jìn)出給過程傳遞數(shù)據(jù)的途徑是使用參數(shù)。參數(shù)被作為要傳遞給過程的數(shù)據(jù)的占位符。參數(shù)名可以是任何有效的變量名。使用 sub 語句或 function 語句創(chuàng)建過程時,過程名之后必須緊跟括號。括號中包含所有參數(shù),參數(shù)間用逗號分隔。例如,在下面的示例中,fdegrees 是傳遞給 celsius 函數(shù)的值的占位符:function celsius(fdegrees)celsius = (fdegrees - 32) * 5 / 9end function要從過程獲取數(shù)據(jù),必須使用 fu

34、nction 過程。請記住,function 過程可以返回值;sub 過程不返回值。 在代碼中使用 sub 和 function 過程調(diào)用 function 過程時,函數(shù)名必須用在變量賦值語句的右端或表達(dá)式中。例如: temp = celsius(fdegrees)或msgbox 溫度為 & celsius(fdegrees) & 攝氏度。調(diào)用 sub 過程時,只需輸入過程名及所有參數(shù)值,參數(shù)值之間使用逗號分隔。不需使用 call 語句,但如果使用了此語句,則必須將所有參數(shù)包含在括號之中。 下面的示例顯示了調(diào)用 myproc 過程的兩種方式。一種使用 call 語句;另一種則不使用。兩種方式效

35、果相同。call myproc(firstarg, secondarg)myproc firstarg, secondarg請注意當(dāng)不使用 call 語句進(jìn)行調(diào)用時,括號被省略。第十課 vbscript編碼約定什么是編碼約定?編碼約定是幫助您使用 microsoft visual basic scripting edition 編寫代碼的一些建議。編碼約定包含以下內(nèi)容:對象、變量和過程的命名約定注釋約定 文本格式和縮進(jìn)指南 使用一致的編碼約定的主要原因是使 script 或 script 集的結(jié)構(gòu)和編碼樣式標(biāo)準(zhǔn)化,這樣代碼易于閱讀和理解。使用好的編碼約定可以使源代碼明白、易讀、準(zhǔn)確,更加直觀且

36、與其他語言約定保持一致。常數(shù)命名約定vbscript 的早期版本不允許創(chuàng)建用戶自定義常數(shù)。如果要使用常數(shù),則常數(shù)以變量的方式實現(xiàn),且全部字母大寫以和其他變量區(qū)分。常數(shù)名中的多個單詞用下劃線 (_) 分隔。例如: user_list_maxnew_line這種標(biāo)識常數(shù)的方法依舊可行,但您還可以選擇其他方案,用 const 語句創(chuàng)建真正的常數(shù)。這個約定使用大小寫混合的格式,并以“con”作為常數(shù)名的前綴。例如:conyourownconstant變量命名約定出于易讀和一致性的目的,請在 vbscript 代碼中使用以下變量命名約定: 子 類 型前 綴示 例booleanblnblnfoundbyt

37、ebytbytrasterdatadate (time)dtmdtmstartdoubledbldbltoleranceerrorerrerrordernumintegerintintquantitylonglnglngdistanceobjectobjobjcurrentsinglesngsngaveragestringstrstrfirstname變量作用域變量應(yīng)定義在盡量小的作用域中。vbscript 變量的作用域如下所示: 作用域聲明變量處可見性過程級事件、函數(shù)或子過程在聲明變量的過程中可見script 級html 頁面的 head 部分,任何過程之外在 script 的所有過程中可見

38、變量作用域前綴隨著 script 代碼長度的增加,有必要快速區(qū)分變量的作用域。在類型前綴前面添加一個單字符前綴可以實現(xiàn)這一點,而不致使變量名過長。 作用域前綴示例過程級無dblvelocityscript 級ssblncalcinprogress描述性變量名和過程名變量名或過程名的主體應(yīng)使用大小寫混合格式,并且盡量完整地描述其目的。另外,過程名應(yīng)以動詞開始,例如 initnamearray 或 closedialog。對于經(jīng)常使用的或較長的名稱,推薦使用標(biāo)準(zhǔn)縮寫以使名稱保持在適當(dāng)?shù)拈L度內(nèi)。通常多于 32 個字符的變量名會變得難以閱讀。使用縮寫時,應(yīng)確保在整個 script 中保持一致。例如,在

39、一個 script 或 script 集中隨意切換 cnt 和 count 將造成混亂。 對象命名約定下表列出了 vbscript 中可能用到的對象命名約定(推薦): 對象類型前綴示例3d 面板pnlpnlgroup動畫按鈕anianimailbox復(fù)選框chkchkreadonly組合框、下拉列表框cbocboenglish命令按鈕cmdcmdexit公共對話框dlgdlgfileopen框架frafralanguage水平滾動條hsbhsbvolume圖像imgimgicon標(biāo)簽lbllblhelpmessage直線linlinvertical列表框lstlstpolicycodes旋鈕s

40、pnspnpages文本框txttxtlastname垂直滾動條vsbvsbrate滑塊sldsldscale代碼注釋約定所有過程的開始部分都應(yīng)有描述其功能的簡要注釋。這些注釋并不描述細(xì)節(jié)信息(如何實現(xiàn)功能),這是因為細(xì)節(jié)有時要頻繁更改。這樣就可以避免不必要的注釋維護(hù)工作以及錯誤的注釋。細(xì)節(jié)信息由代碼本身及必要的內(nèi)部注釋來描述。當(dāng)傳遞給過程的參數(shù)的用途不明顯,或過程對參數(shù)的取值范圍有要求時,應(yīng)加以說明。如果過程改變了函數(shù)和變量的返回值(特別是通過參數(shù)引用來改變),也應(yīng)在過程的開始部分描述該返回值。過程開始部分的注釋應(yīng)包含以下區(qū)段標(biāo)題。相關(guān)樣例,請參閱后面的“格式化代碼”部分。 區(qū)段標(biāo)題注釋內(nèi)容

41、目的過程的功能(不是實現(xiàn)功能的方法)。假設(shè)其狀態(tài)影響此過程的外部變量、控件或其他元素的列表。效果過程對每個外部變量、控件或其他元素的影響效果的列表。輸入每個目的不明顯的參數(shù)的解釋。每個參數(shù)都應(yīng)占據(jù)單獨一行并有其內(nèi)部注釋。返回返回值的解釋。請記住以下幾點: 每個重要的變量聲明都應(yīng)有內(nèi)部注釋,描述變量的用途。應(yīng)清楚地命名變量、控件和過程,僅在說明復(fù)雜細(xì)節(jié)時需要內(nèi)部注釋。應(yīng)在 script 的開始部分包含描述該 script 的概述,列舉對象、過程、運算法則、對話框和其他系統(tǒng)從屬物。有時一段描述運算法則的假碼是很有用的。格式化代碼應(yīng)盡可能多地保留屏空間,但仍允許用代碼格式反映邏輯結(jié)構(gòu)和嵌套。以下為幾

42、點提示: 標(biāo)準(zhǔn)嵌套塊應(yīng)縮進(jìn) 4 個空格。 過程的概述注釋應(yīng)縮進(jìn) 1 個空格。 概述注釋后的最高層語句應(yīng)縮進(jìn) 4 個空格,每一層嵌套塊再縮進(jìn) 4 個空格。例如:* 目的:返回指定用戶在 userlist 數(shù)組中第一次出現(xiàn)的位置。 輸入: struserlist(): 所查找的用戶列表。 strtargetuser: 要查找的用戶名。 返回: strtargetuser 在 struserlist 數(shù)組中第一次出現(xiàn)時的索引。 如果目標(biāo)用戶未找到,返回 -1。*function intfinduser (struserlist(), strtargetuser)dim i 循環(huán)計數(shù)器。dim blnfound 發(fā)現(xiàn)目標(biāo)的標(biāo)記。intfinduser = -1i = 0 初始化循環(huán)計數(shù)器。do while i = ubound(struserlist) and not blnfoundif struserlist(i) = strtargetuser then blnfound = true 標(biāo)記設(shè)為 true。intfinduser = i 返回值設(shè)為循環(huán)計數(shù)器。end ifi = i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論