VB腳本從入門到精通.doc_第1頁
VB腳本從入門到精通.doc_第2頁
VB腳本從入門到精通.doc_第3頁
VB腳本從入門到精通.doc_第4頁
VB腳本從入門到精通.doc_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

什么是 VBScript?Microsoft Visual Basic Scripting Edition 是程序開發(fā)語言 Visual Basic 家族的最新成員,它將靈活的腳本應(yīng)用于更廣泛的領(lǐng)域,包括 Microsoft Internet Explorer 中的 Web 客戶機腳本和 Microsoft Internet Information Service 中的 Web 服務(wù)器腳本。易學(xué)易用如果您已了解 Visual Basic 或 Visual Basic for Applications,就會很快熟悉 VBScript。即使您沒有學(xué)過 Visual Basic,只要學(xué)會 VBScript,就能夠使用所有的 Visual Basic 語言進行程序設(shè)計。雖然您可以從本教程的幾個 Web 頁面中學(xué)習(xí) VBscript,但是本教程并沒有告訴您如何編程。要學(xué)習(xí)編程,請閱讀由 Microsoft Press 出版的Step by Step。ActiveX 腳本VBScript 使用 ActiveX(R)腳本與宿主應(yīng)用程序?qū)υ挕J褂?ActiveX Script,瀏覽器和其他宿主應(yīng)用程序不再需要每個腳本部件的特殊集成代碼。ActiveX腳本使宿主可以編譯 Script、獲取和調(diào)用入口點及管理開發(fā)者可用的命名空間。通過 ActiveX Script,語言廠商可以建立標(biāo)準(zhǔn)腳本運行時語言。Microsoft 將提供 VBScript 的運行時支持。Microsoft 正在與多個 Internet 組一起定義 ActiveX腳本標(biāo)準(zhǔn)以使腳本引擎可以互換。ActiveX腳本可用在 Microsoft(R) Internet Explorer 和 Microsoft(R) Internet Information Service 中。其他應(yīng)用程序和瀏覽器中的 VBScript作為開發(fā)者,您可以在您的產(chǎn)品中免費使用 VBScript 源實現(xiàn)程序。Microsoft 為 32 位 Windows(R) API、16 位 Windows API 和 Macintosh(R) 提供 VBscript 的二進制實現(xiàn)程序。VBScript 與 World Wide Web 瀏覽器集成在一起。VBScript 和 ActiveX腳本也可以在其他應(yīng)用程序中作為普通腳本語言使用。在 HTML 頁面中添加 VBScript 代碼SCRIPT 元素用于將 VBScript 代碼添加到 HTML 頁面中。 標(biāo)記VBScript 代碼寫在成對的 標(biāo)記之間。例如,以下代碼為一個測試傳遞日期的過程: 2 End Function-代碼的開始和結(jié)束部分都有 標(biāo)記。LANGUAGE 屬性用于指定所使用的腳本語言。由于瀏覽器能夠使用多種腳本語言,所以必須在此指定所使用的腳本語言。注意 CanDeliver 函數(shù)被嵌入在注釋標(biāo)記()中。這樣能夠避免不能識別 標(biāo)記的瀏覽器將代碼顯示在頁面中。因為以上示例是一個通用函數(shù)(不依賴于任何窗體控件),所以可以將其包含在頁面的 HEAD 部分: 訂購 2 End Function-.SCRIPT 塊可以出現(xiàn)在 HTML 頁面的任何地方(BODY 或 HEAD 部分之中)。然而最好將所有的一般目標(biāo)腳本代碼放在 HEAD 部分中,以使所有腳本代碼集中放置。這樣可以確保在 BODY 部分調(diào)用代碼之前所有腳本代碼都被讀取并解碼。上述規(guī)則的一個值得注意的例外情況是,在窗體中提供內(nèi)部代碼以響應(yīng)窗體中對象的事件。例如,以下示例在窗體中嵌入腳本代碼以響應(yīng)窗體中按鈕的單擊事件: 測試按鈕事件 MsgBox 按鈕被單擊! 大多數(shù)腳本代碼在 Sub 或 Function 過程中,僅在其他代碼要調(diào)用它時執(zhí)行。然而,也可以將 VBScript 代碼放在過程之外、SCRIPT 塊之中。這類代碼僅在 HTML 頁面加載時執(zhí)行一次。這樣就可以在加載 Web 頁面時初始化數(shù)據(jù)或動態(tài)地改變頁面的外觀。VBScript 數(shù)據(jù)類型VBScript 只有一種數(shù)據(jù)類型,稱為 Variant。Variant 是一種特殊的數(shù)據(jù)類型,根據(jù)使用的方式,它可以包含不同類別的信息。因為 Variant 是 VBScript 中唯一的數(shù)據(jù)類型,所以它也是 VBScript 中所有函數(shù)的返回值的數(shù)據(jù)類型。最簡單的 Variant 可以包含數(shù)字或字符串信息。Variant 用于數(shù)字上下文中時作為數(shù)字處理,用于字符串上下文中時作為字符串處理。這就是說,如果使用看起來象是數(shù)字的數(shù)據(jù),則 VBScript 會假定其為數(shù)字并以適用于數(shù)字的方式處理。與此類似,如果使用的數(shù)據(jù)只可能是字符串,則 VBScript 將按字符串處理。也可以將數(shù)字包含在引號 ( ) 中使其成為字符串。Variant 子類型除簡單數(shù)字或字符串以外,Variant 可以進一步區(qū)分數(shù)值信息的特定含義。例如使用數(shù)值信息表示日期或時間。此類數(shù)據(jù)在與其他日期或時間數(shù)據(jù)一起使用時,結(jié)果也總是表示為日期或時間。從 Boolean 值到浮點數(shù),數(shù)值信息是多種多樣的。Variant 包含的數(shù)值信息類型稱為子類型。大多數(shù)情況下,可將所需的數(shù)據(jù)放進 Variant 中,而 Variant 也會按照最適用于其包含的數(shù)據(jù)的方式進行操作。下表顯示 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,477.5807。Long包含 -2,147,483,648 到 2,147,483,647 之間的整數(shù)。Single包含單精度浮點數(shù),負數(shù)范圍從 -3.402823E38 到 -1.401298E-45,正數(shù)范圍從 1.401298E-45 到 3.402823E38。Double包含雙精度浮點數(shù),負數(shù)范圍從 -1.79769313486232E308 到 -4.94065645841247E-324,正數(shù)范圍從 4.94065645841247E-324 到 1.79769313486232E308。Date (Time)包含表示日期的數(shù)字,日期范圍從公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日。String包含變長字符串,最大長度可為 20 億個字符。Object包含對象。Error包含錯誤號。您可以使用轉(zhuǎn)換函數(shù)來轉(zhuǎn)換數(shù)據(jù)的子類型。另外,可使用 VarType函數(shù)返回數(shù)據(jù)的 Variant 子類型。VBScript 變量變量是一種使用方便的占位符,用于引用計算機內(nèi)存地址,該地址可以存儲腳本運行時可更改的程序信息。例如,可以創(chuàng)建一個名為 ClickCount 的變量來存儲用戶單擊 Web 頁面上某個對象的次數(shù)。使用變量并不需要了解變量在計算機內(nèi)存中的地址,只要通過變量名引用變量就可以查看或更改變量的值。在 VBScript 中只有一個基本數(shù)據(jù)類型,即 Variant,因此所有變量的數(shù)據(jù)類型都是 Variant。聲明變量聲明變量的一種方式是使用 Dim 語句、Public 語句和 Private 語句在腳本中顯式聲明變量。例如: Dim DegreesFahrenheit聲明多個變量時,使用逗號分隔變量。例如: Dim Top, Bottom, Left, Right另一種方式是通過直接在腳本中使用變量名這一簡單方式隱式聲明變量。這通常不是一個好習(xí)慣,因為這樣有時會由于變量名被拼錯而導(dǎo)致在運行腳本時出現(xiàn)意外的結(jié)果。因此,最好使用 Option Explicit 語句顯式聲明所有變量,并將其作為腳本的第一條語句。命名規(guī)則變量命名必須遵循 VBScript 的標(biāo)準(zhǔn)命名規(guī)則。變量命名必須遵循: 第一個字符必須是字母。 不能包含嵌入的句點。 長度不能超過 255 個字符。 在被聲明的作用域內(nèi)必須唯一。 變量的作用域與存活期變量的作用域由聲明它的位置決定。如果在過程中聲明變量,則只有該過程中的代碼可以訪問或更改變量值,此時變量具有局部作用域并被稱為過程級變量。如果在過程之外聲明變量,則該變量可以被腳本中所有過程所識別,稱為 Script 級變量,具有腳本級作用域。變量存在的時間稱為存活期。Script 級變量的存活期從被聲明的一刻起,直到腳本運行結(jié)束。對于過程級變量,其存活期僅是該過程運行的時間,該過程結(jié)束后,變量隨之消失。在執(zhí)行過程時,局部變量是理想的臨時存儲空間。可以在不同過程中使用同名的局部變量,這是因為每個局部變量只被聲明它的過程識別。給變量賦值創(chuàng)建如下形式的表達式給變量賦值:變量在表達式左邊,要賦的值在表達式右邊。例如: B = 200標(biāo)量變量和數(shù)組變量多數(shù)情況下,只需為聲明的變量賦一個值。只包含一個值的變量被稱為標(biāo)量變量。有時候,將多個相關(guān)值賦給一個變量更為方便,因此可以創(chuàng)建包含一系列值的變量,稱為數(shù)組變量。數(shù)組變量和標(biāo)量變量是以相同的方式聲明的,唯一的區(qū)別是聲明數(shù)組變量時變量名后面帶有括號 ( )。下例聲明了一個包含 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) = 256 A(1) = 324 A(2) = 100 . . . A(10) = 55與此類似,使用索引可以檢索到所需的數(shù)組元素的數(shù)據(jù)。例如: . . . SomeVariable = A(8) . . . 數(shù)組并不僅限于一維。數(shù)組的維數(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ù)組,即在運行腳本時大小發(fā)生變化的數(shù)組。對數(shù)組的最初聲明使用 Dim 語句或 ReDim 語句。但是對于動態(tài)數(shù)組,括號中不包含任何數(shù)字。例如: Dim MyArray() ReDim AnotherArray()要使用動態(tài)數(shù)組,必須隨后使用 ReDim 確定維數(shù)和每一維的大小。在下例中,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ù)是沒有任何限制的,將數(shù)組的大小調(diào)小時,將會丟失被刪除元素的數(shù)據(jù)。VBScript 常數(shù)常數(shù)是具有一定含義的名稱,用于代替數(shù)字或字符串,其值從不改變。VBScript 定義了許多內(nèi)部常數(shù)。詳細信息,請參閱 VBScript 語言參考。創(chuàng)建常數(shù)您可以使用 Const 語句在 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ù)和變量。這樣可以避免在運行腳本時對常數(shù)重新賦值。例如,可以使用“vb”或“con”作常數(shù)名的前綴,或?qū)⒊?shù)名的所有字母大寫。將常數(shù)和變量區(qū)分開可以在開發(fā)復(fù)雜的腳本時避免混亂。VBScript 運算符VBScript 有一套完整的運算符,包括算術(shù)運算符、比較運算符、連接運算符和邏輯運算符。運算符優(yōu)先級當(dāng)表達式包含多個運算符時,將按預(yù)定順序計算每一部分,這個順序被稱為運算符優(yōu)先級。可以使用括號越過這種優(yōu)先級順序,強制首先計算表達式的某些部分。運算時,總是先執(zhí)行括號中的運算符,然后再執(zhí)行括號外的運算符。但是,在括號中仍遵循標(biāo)準(zhǔn)運算符優(yōu)先級。當(dāng)表達式包含多種運算符時,首先計算算術(shù)運算符,然后計算比較運算符,最后計算邏輯運算符。所有比較運算符的優(yōu)先級相同,即按照從左到右的順序計算比較運算符。算術(shù)運算符和邏輯運算符的優(yōu)先級如下所示:算術(shù)運算符比較運算符邏輯運算符描述符號描述符號描述符號求冪等于=邏輯非Not負號-不等于邏輯與And乘*小于邏輯異或Xor整除小于等于=邏輯隱含Imp加+對象引用比較Is 減- 字符串連接& 當(dāng)乘號與除號同時出現(xiàn)在一個表達式中時,按從左到右的順序計算乘、除運算符。同樣當(dāng)加與減同時出現(xiàn)在一個表達式中時,按從左到右的順序計算加、減運算符。字符串連接 (&) 運算符不是算術(shù)運算符,但是在優(yōu)先級順序中,它排在所有算術(shù)運算符之后和所有比較運算符之前。Is 運算符是對象引用比較運算符。它并不比較對象或?qū)ο蟮闹?,而只是進行檢查,判斷兩個對象引用是否引用同一個對象。使用條件語句控制程序執(zhí)行使用條件語句和循環(huán)語句可以控制腳本的流程。使用條件語句可以編寫進行判斷和重復(fù)操作的 VBScript 代碼。在 VBScript 中可使用以下條件語句: If.Then.Else 語句 Select Case 語句 使用 If.Then.Else 進行判斷If.Then.Else 語句用于計算條件是否為 True 或 False,并且根據(jù)計算結(jié)果指定要運行的語句。通常,條件是使用比較運算符對值或變量進行比較的表達式。有關(guān)比較運算符的詳細信息,請參閱比較運算符。If.Then.Else 語句可以按照需要進行嵌套。條件為 True 時運行語句要在條件為 True 時運行單行語句,可使用 If.Then.Else 語句的單行語法。下例示范了單行語法。請注意此例省略了關(guān)鍵字 Else。 Sub FixDate() Dim myDate myDate = #2/13/95# If myDate 10 myNum = myNum - 1 counter = counter + 1 Loop MsgBox 循環(huán)重復(fù)了 & counter & 次。 End Sub Sub ChkLastWhile() Dim counter, myNum counter = 0 myNum = 9 Do myNum = myNum - 1 counter = counter + 1 Loop While myNum 10 MsgBox 循環(huán)重復(fù)了 & counter & 次。 End Sub重復(fù)執(zhí)行語句直到條件變?yōu)?TrueUntil 關(guān)鍵字用于檢查 Do.Loop 語句中的條件。有兩種方式檢查條件:在進入循環(huán)之前檢查條件(如下面的 ChkFirstUntil 示例);或者在循環(huán)至少運行完一次之后檢查條件(如下面的 ChkLastUntil 示例)。只要條件為 False,就會進行循環(huán)。 Sub ChkFirstUntil() Dim counter, myNum counter = 0 myNum = 20 Do Until myNum = 10 myNum = myNum - 1 counter = counter + 1 Loop MsgBox 循環(huán)重復(fù)了 & counter & 次。 End Sub Sub ChkLastUntil() Dim counter, myNum counter = 0 myNum = 1 Do myNum = myNum + 1 counter = counter + 1 Loop Until myNum = 10 MsgBox 循環(huán)重復(fù)了 & counter & 次。 End Sub退出循環(huán)Exit Do 語句用于退出 Do.Loop 循環(huán)。因為通常只是在某些特殊情況下要退出循環(huán)(例如要避免死循環(huán)),所以可在 If.Then.Else 語句的 True 語句塊中使用 Exit Do 語句。如果條件為 False,循環(huán)將照常運行。在下面的示例中,myNum 的初始值將導(dǎo)致死循環(huán)。If.Then.Else 語句檢查此條件,防止出現(xiàn)死循環(huán)。 Sub ExitExample() Dim counter, myNum counter = 0 myNum = 9 Do Until myNum = 10 myNum = myNum - 1 counter = counter + 1 If myNum 10 Then Exit Do Loop MsgBox 循環(huán)重復(fù)了 & counter & 次。 End Sub使用 While.WendWhile.Wend 語句是為那些熟悉其用法的用戶提供的。但是由于 While.Wend 缺少靈活性,所以建議最好使用 Do.Loop 語句。使用 For.NextFor.Next 語句用于將語句塊運行指定的次數(shù)。在循環(huán)中使用計數(shù)器變量,該變量的值隨每一次循環(huán)增加或減少。例如,下面的示例將過程 MyProc 重復(fù)執(zhí)行 50 次。For 語句指定計數(shù)器變量 x 及其起始值與終止值。Next 語句使計數(shù)器變量每次加 1。 Sub DoMyProc50Times() Dim x For x = 1 To 50 MyProc Next End Sub關(guān)鍵字 Step 用于指定計數(shù)器變量每次增加或減少的值。在下面的示例中,計數(shù)器變量 j 每次加 2。循環(huán)結(jié)束后,total 的值為 2、4、6、8 和 10 的總和。 Sub TwosTotal() Dim j, total For j = 2 To 10 Step 2 total = total + j Next MsgBox 總和為 & total & 。 End Sub要使計數(shù)器變量遞減,可將 Step 設(shè)為負值。此時計數(shù)器變量的終止值必須小于起始值。在下面的示例中,計數(shù)器變量 myNum 每次減 2。循環(huán)結(jié)束后,total 的值為 16、14、12、10、8、6、4 和 2 的總和。 Sub NewTotal() Dim myNum, total For myNum = 16 To 2 Step -2 total = total + myNum Next MsgBox 總和為 & total & 。 End SubExit For 語句用于在計數(shù)器達到其終止值之前退出 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 對象的內(nèi)容用于將文本分別放置在多個文本框中: 窗體與元素 FORM NAME=frmForm VBScript 過程在 VBScript 中,過程被分為兩類:Sub 過程和 Function 過程。Sub 過程Sub 過程是包含在 Sub 和 End Sub 語句之間的一組 VBScript 語句,執(zhí)行操作但不返回值。Sub 過程可以使用參數(shù)(由調(diào)用過程傳遞的常數(shù)、變量或表達式)。如果 Sub 過程無任何參數(shù),則 Sub 語句必須包含空括號 ()。下面的 Sub 過程使用兩個固有的(或內(nèi)置的)VBScript 函數(shù),即 MsgBox 和 InputBox,來提示用戶輸入信息。然后顯示根據(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ù)、變量或表達式)。如果 Function 過程無任何參數(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 Sub Function Celsius(fDegrees) Celsius = (fDegrees - 32) * 5 / 9 End Function過程的數(shù)據(jù)進出給過程傳遞數(shù)據(jù)的途徑是使用參數(shù)。參數(shù)被作為要傳遞給過程的數(shù)據(jù)的占位符。參數(shù)名可以是任何有效的變量名。使用 Sub 語句或 Function 語句創(chuàng)建過程時,過程名之后必須緊跟括號。括號中包含所有參數(shù),參數(shù)間用逗號分隔。例如,在下面的示例中,fDegrees 是傳遞給 Celsius 函數(shù)的值的占位符: Function Celsius(fDegrees) Celsius = (fDegrees - 32) * 5 / 9 End Function要從過程獲取數(shù)據(jù),必須使用 Function 過程。請記住,F(xiàn)unction 過程可以返回值;Sub 過程不返回值。在代碼中使用 Sub 和 Function 過程調(diào)用 Function 過程時,函數(shù)名必須用在變量賦值語句的右端或表達式中。例如: Temp = Celsius(fDegrees)或 MsgBox 溫度為 & Celsius(fDegrees) & 攝氏度。調(diào)用 Sub 過程時,只需輸入過程名及所有參數(shù)值,參數(shù)值之間使用逗號分隔。不需使用 Call 語句,但如果使用了此語句,則必須將所有參數(shù)包含在括號之中。下面的示例顯示了調(diào)用 MyProc 過程的兩種方式。一種使用 Call 語句;另一種則不使用。兩種方式效果相同。 Call MyProc(firstarg, secondarg) MyProc firstarg, secondarg請注意當(dāng)不使用 Call 語句進行調(diào)用時,括號被省略。VBScript編碼約定編碼約定是幫助您使用 Microsoft Visual Basic Scripting Edition 編寫代碼的一些建議。編碼約定包含以下內(nèi)容: 對象、變量和過程的命名約定 注釋約定 文本格式和縮進指南 使用一致的編碼約定的主要原因是使腳本或腳本集的結(jié)構(gòu)和編碼樣式標(biāo)準(zhǔn)化,這樣代碼易于閱讀和理解。使用好的編碼約定可以使源代碼明白、易讀、準(zhǔn)確,更加直觀且與其他語言約定保持一致。常數(shù)命名約定VBScript 的早期版本不允許創(chuàng)建用戶自定義常數(shù)。如果要使用常數(shù),則常數(shù)以變量的方式實現(xiàn),且全部字母大寫以和其他變量區(qū)分。常數(shù)名中的多個單詞用下劃線 (_) 分隔。例如: USER_LIST_MAX NEW_LINE這種標(biāo)識常數(shù)的方法依舊可行,但您還可以選擇其他方案,用 Const 語句創(chuàng)建真正的常數(shù)。這個約定使用大小寫混合的格式,并以“con”作為常數(shù)名的前綴。例如: conYourOwnConstant變量命名約定為提高易讀和一致性,請在 VBScript 代碼中使用以下變量命名約定:子類型前綴示例BooleanblnblnFoundBytebytbytRasterDataDate (Time)dtmdtmStartDoubledbldblToleranceErrorerrerrOrderNumIntegerintintQuantityLonglnglngDistanceObjectobjobjCurrentSinglesngsngAverageStringstrstrFirstName變量作用域變量應(yīng)定義在盡量小的作用域中。VBScript 變量的作用域如下所示:作用域聲明變量處可見性過程級事件、函數(shù)或子過程。在聲明變量的過程中可見。Script 級HTML 頁面的 HEAD 部分,任何過程之外。在腳本的所有過程中可見。變量作用域前綴隨著腳本代碼長度的增加,有必要快速區(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)確保在整個腳本中保持一致。例如,在一個腳本或腳本集中隨意切換 Cnt 和 Count 將造成混亂。對象命名約定下表列出了 VBScript 中可能用到的對象命名約定(推薦):對象類型前綴示例3D 面板pnlpnlGroup動畫按鈕anianiMailBox復(fù)選框chkchkReadOnly組合框、下拉列表框cbocboEnglish命令按鈕cmdcmdExit公共對話框dlgdlgFileOpen框架frafraLanguage水平滾動條hsbhsbVolume圖像imgimgIcon標(biāo)簽lbllblHelpMessage直線linlinVertical列表框lstlstPolicyCodes旋鈕spnspnPages文本框txttxtLastName垂直滾動條vsbvsbRate滑塊sldsldScale代碼注釋約定所有過程的開始部分都應(yīng)有描述其功能的簡要注釋。這些注釋并不描述細節(jié)信息(如何實現(xiàn)功能),這是因為細節(jié)有時要頻繁更改。這樣就可以避免不必要的注釋維護工作以及錯誤的注釋。細節(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)容目的過程的功能(不是實現(xiàn)功能的方法)。假設(shè)其狀態(tài)影響此過程的外部變量、控件或其他元素的列表。效果過程對每個外部變量、控件或其他元素的影響效果的列表。輸入每個目的不明顯的參數(shù)的解釋。每個參數(shù)都應(yīng)占據(jù)單獨一行并有其內(nèi)部注釋。返回返回值的解釋。請記住以下幾點: 每個重要的變量聲明都應(yīng)有內(nèi)部注釋,描述變量的用途。 應(yīng)清楚地命名變量、控件和過程,僅在說明復(fù)雜細節(jié)時需要內(nèi)部注釋。 應(yīng)在腳本的開始部分包含描述該腳本的概述,列舉對象、過程、運算法則、對話框和其他系統(tǒng)從屬物。有時一段描述運算法則的假碼是很有用的。 格式化代碼應(yīng)盡可能多地保留屏幕空間,但仍允許用代碼格式反映邏輯結(jié)構(gòu)和嵌套。以下為幾點提示: 標(biāo)準(zhǔn)嵌套塊應(yīng)縮進 4 個空格。 過程的概述注釋應(yīng)縮進 1 個空格。 概述注釋后的最高層語句應(yīng)縮進 4 個空格,每一層嵌套塊再縮進 4 個空格。例如: * Purpose: Locates the first occurrence of a specified user in the UserList array. Inputs: strUserList(): the list of users to be searched.strTargetUser: the name of the user to search for. Returns: The index of the first occurrence of the strTargetUser in the strUserList array. If the target user is not found, return -1.*Function intFindUser (strUserList(), strTargetUser)Dim i Loop counter.Dim blnFound Target found flagintFindUser = -1i = 0 Initialize loop counterDo While i = Ubound(strUserList) and Not blnFoundIf strUserList(i) = strTargetUser Then blnFound = True Set flag to TrueintFindUser = i Set return value to loop countEnd Ifi = i + 1 Increment loop counterLoopEnd FunctionVBScript 語句描述語言元素將控制權(quán)交給一個 Sub 或 Function 過程。Call 語句聲明一個類的名稱。Class 語句聲明用于替換文字值的常數(shù)。Const 語句聲明變量并分配存儲空間。Dim 語句當(dāng)某個條件為 True 時或在某個條件變?yōu)?True 之前重復(fù)執(zhí)行一個語句塊。Do.Loop 語句重新初始化固定大小的數(shù)組的元素和釋放動態(tài)數(shù)組的存儲空間。Erase 語句執(zhí)行一條或多條指定語句。Execute 語句在一個腳本的全局命名空間中執(zhí)行一條或多條語句。ExecuteGlobal 語句退出 Do.Loop、For.Next、Function 或 Sub 代碼塊。Exit 語句重復(fù)地執(zhí)行一組語句達指定次數(shù)。For.Next 語句針對一個數(shù)組或集合中的每個元素重復(fù)執(zhí)行一組語句。For Each.Next 語句聲明一個 Function 過程的名稱、參數(shù)和代碼。Function 語句根據(jù)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論