




已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第2章 Visual Basic的語言基礎(chǔ)與任何現(xiàn)代編程語言一樣,Visual Basic 支持許多公共的編程結(jié)構(gòu)和語言元素。Visual Basic是一種基于對象的編程語言,對象使編程變得比以往任何時候都容易。Visual Basic語言的主要特點是事件驅(qū)動,一旦掌握了這特點,就能更充分地利用它們,順序地完成代碼的編寫工作,使用VB為我們實現(xiàn)高效的功能。2.1 標準數(shù)據(jù)類型布爾型(Boolean) 字節(jié)型(Byte) 整型(Integer) 長整型(Long)單精度型(Single) 雙精度型(Double) 貨幣型(Currency) 日期型(Date)字符串(String)(變長) 字符串(String)(定長) 對象型(Object) 變體(Variant)(字符)變體(Variant)(數(shù)值) 自定義型(User-defined)注意:不同數(shù)據(jù)類型在機器中占用的存儲空間不同,即占用的字節(jié)數(shù)不同,系統(tǒng)對其處理的方法也不同,在程序中要對數(shù)據(jù)類型有明確的說明或定義。1. 數(shù)值(Numeric)數(shù)據(jù)類型Visual Basic 支持幾種 Numeric 數(shù)據(jù)類型 Integer(整型)、Long(長整型)、Single(單精度浮點型)、Double(雙精度浮點型)和 Currency(貨幣型)。與 Variant 類型相比,Numeric 類型占用的存儲空間通常要少。Integer 數(shù)據(jù)類型 整數(shù),存儲為 16位(2 個字節(jié))的數(shù)值形式,其范圍為 -32,768 到 32,767 之間。Integer 的類型聲明字符(尾標)是百分比符號 (%):234%、-456%可以用十進制、十六進制和八進制表示:十進制整數(shù):只能含09、正號和負號:10,255,-45十六進制整數(shù):只能是正數(shù),由數(shù)字09、AF或af組成,并以&H引導(dǎo),其總的位數(shù)=4,其范圍:&H0&HFFFF八進制整數(shù):只能是正數(shù),由數(shù)字07組成,并以&O或&引導(dǎo),其總的位數(shù) conWorldPop Then Exit Sub 設(shè)定用戶自定義常量的范圍和變量聲明一樣, Const 語句也有范圍,也使用相同的規(guī)則: 為創(chuàng)建僅存在于過程中的常量,請在這個過程內(nèi)部聲明常量。為創(chuàng)建一常量,它對模塊中所有過程都有效,但對模塊之外任何代碼都無效,請在模塊的聲明段中聲明常量。為創(chuàng)建在整個應(yīng)用程序中有效的常量,請在標準模塊的聲明段中進行聲明,并在 Const 前面放置 Public 關(guān)鍵字。在窗體模塊或類模塊中不能聲明 Public 常量。系統(tǒng)提供的常量VB內(nèi)部的或系統(tǒng)定義的常量是應(yīng)用程序和控件提供的。在“對象瀏覽器”中的 Visual Basic ( VB ) 、和 Visual Basic for applications ( VBA ) 對象庫中列舉了 Visual Basic 的常數(shù)。其它提供對象庫的應(yīng)用程序,如 Microsoft Excel 和 Microsoft Project,也提供了常數(shù)列表,這些常數(shù)可與應(yīng)用程序的對象、方法和屬性一起使用。在每個 ActiveX 控件的對象庫中也定義了常數(shù) 。說明:在 Visual Basic 中,常數(shù)名采用大小寫混合的格式,其前綴表示定義常數(shù)的對象庫名。來自 Visual Basic 和 Visual Basic for applications 對象庫的常數(shù)以 vb 開頭,例如vbTileHorizontal。2.4 表達式在VB中有豐富的運算符,并能組合成各種表達式,實現(xiàn)程序編制中所需要的大量操作. 在VB中運算符可分為算術(shù)運算符、字符串運算符、日期運算符、關(guān)系運算符和邏輯運算符,利用這些運算符就構(gòu)成了相應(yīng)的表達式,完成了各種類型的運算。2.4.1 算術(shù)表達式由算術(shù)運算符、數(shù)值型常量、變量、函數(shù)和圓括號組成,其運算結(jié)果為一數(shù)值的表達式稱為算術(shù)表達式,也稱為數(shù)值表達式,如: 50*8+(70-6)/81.算術(shù)運算符算術(shù)運算符多為雙目運算,即有兩個操作數(shù)參加運算(參見P34表2-2) 乘方 ab* 乘 a*b/ 除 a/b 整除 ab Mod 取模(求余數(shù)) a mod b+ 加 a+b- 減(雙目運算)或取負號(單目運算) a-b,-c 例(p34-1.vbp)Private Sub Command1_Click()Dim X1, Y1 As Integer X1 = 45 Y1 = 8 Print X1; ; Y1; = ; X1 Y1; Print -; Y1; =; -Y1 Print X1; *; Y1; =; X1 * Y1 Print X1; /; Y1; =; X1 / Y1 Print X1; ; Y1; =; X1 Y1 Print X1; mod; Y1; =; X1 Mod Y1 Print X1; +; Y1; =; X1 + Y1 Print X1; -; Y1; =; X1 - Y1End Sub2. 表達式的書寫規(guī)則乘號“*”不能省略.例x乘以y必須寫成:x*y圓括號必須成對出現(xiàn),只使用圓括號表達式從左到右在同一行上書寫,無高低大小之分.例:其VB表達式為: sqr(3*x+y)-z)/(x*y)43.不同數(shù)據(jù)類型的轉(zhuǎn)換如果參加運算的操作數(shù)具有不同數(shù)據(jù)類型,則VB的運算結(jié)果的數(shù)據(jù)類型總是采用精度高的數(shù)據(jù)類型.各種數(shù)據(jù)類型的精度關(guān)系: integerlongsingledouble關(guān)系運算邏輯運算算術(shù)運算符之間的優(yōu)先級關(guān)系:(指數(shù)運算符)-(負號)*,/(乘,除)(整除)mod(求余)+,-(加,減)注:可以使用圓括號改變優(yōu)先級或使表達式更清晰.2.4.2 字符串表達式字符串運算符+ 連接兩個字符串,兩個操作數(shù)必須均為字符串,若一個為字符串,一個為數(shù)值型操作數(shù),系統(tǒng)報錯.& 連接兩個字符串,其操作數(shù)可以是字符串型,也可以是數(shù)值型,系統(tǒng)首先把操作數(shù)轉(zhuǎn)換為字符型,后連接.注意,若&前是一個變量,則&與變量名之間要加空格,否則系統(tǒng)認為這個&是變量的尾標(長整型).例(P35-1.VBP)字符串運算Private Sub Command1_Click()s1$ = 計算機 + 與程序設(shè)計s2$ = 門 + 程序設(shè) & 計課程x = 8s3$ = x & s2$Print s1$, s2$Print s3$End SubPrivate Sub Form_Load()FontSize = 28End Sub2.4.3 日期表達式日期數(shù)據(jù)可以進行加、減運算,有以下三種情況: 日期型數(shù)據(jù)1-日期型數(shù)據(jù)2=天數(shù) 日期型數(shù)據(jù)1+天數(shù)=日期型數(shù)據(jù)2 日期型數(shù)據(jù)1-天數(shù)=日期型數(shù)據(jù)2例(P35-2.VBP)日期運算Private Sub Command1_Click()Dim s1 As Date, s2 As Date, x As Integers1 = #1/25/2002#s2 = #12/25/2001#x = s1 - s2Print s1; - ; s2; =; xPrint s1; + ; x; =; s1 + xPrint s1; - ; x; =; s1 - xEnd Sub2.5 常用內(nèi)部函數(shù)符號的約定:N 表示數(shù)值表達式C 表示字符表達式D 表示日期表達式$ 置于函數(shù)名后,表示函數(shù)返回值為字符串1.數(shù)學(xué)函數(shù)(P36表2-4)數(shù)學(xué)函數(shù),即與數(shù)學(xué)中的定義相同的函數(shù)Abs(N) 取絕對值函數(shù)Atn(N) 反正切函數(shù)Cos(N) 余函數(shù)Exp(N) 以e為底的指數(shù)函數(shù)Fix(N) 去尾函數(shù)(刪除一個數(shù)的小數(shù)部分,返回整數(shù)部分)Int(N) 取整函數(shù)(返回一個接近N不大于N的整數(shù))Log(N) 自然對數(shù)函數(shù)Sgn(N) 符號函數(shù)(根據(jù)N是負,0,正返回-1,0,1)Sin(N) 正弦函數(shù)Sqr(N) 平方根函數(shù)Tan(N) 正切函數(shù)注:在三角函數(shù)中,角度均以弧度表示2字符串函數(shù)(P37表2-5)字符串編碼ANSI(ASCII)ANSI 是個人計算機使用得最普遍的字符集。由于 ANSI 標準使用單一字節(jié)表示每個字符,因此最多只能有 256 個字符和標點符號代碼。雖然對英語來說已經(jīng)足夠了,但不能完全支持其它語言。DBCS(Double Byte Character Set)發(fā)行在亞洲大部分地區(qū)的 Microsoft Windows 系統(tǒng)使用 DBCS。它支持很多不同的東亞語言字母,如漢語、日語和朝鮮語。DBCS 使用數(shù)字 0128 表示 ASCII 字符集。其它大于 128 的數(shù)字作為前導(dǎo)字節(jié)字符,它并不是真正的字符,只是簡單的表明下一個字符屬于非拉丁字符集。在 DBCS 中,ASCII 字符的長度是一個字節(jié),而日語、朝鮮語和其它東亞字符的長度是 2 個字節(jié)。Unicode(國際標準化組織字符標準)Unicode 是用兩個字節(jié)表示每個字符的字符編碼方案。國際標準組織 (ISO) 幾乎為每種語言的每個字符和符號在 0 到 65,535 (216 1) 范圍內(nèi)定義了一個數(shù)字(再加上為將來發(fā)展保留的一些空余空間)。在所有 32 位版本的 Windows 中,部件對象模型 (COM) 都使用 Unicode,它是 OLE 和 ActiveX 技術(shù)的基礎(chǔ)。Windows NT 全部支持 Unicode。雖然 Unicode 和 DBCS 都是雙字節(jié)字符,但它們的編碼方案完全不同。在Visual Basic中使用 Unicode 存儲和操作字符串。InStr 函數(shù)返回 Variant (Long),指定一字符串在另一字符串中最先出現(xiàn)的位置。語法格式:InStr(start, string1, string2, compare)Start 可選參數(shù)。為數(shù)值表達式,設(shè)置每次搜索的起點。如果省略,將從第一個字符的位置開始。如果 start 包含 Null,將發(fā)生錯誤。如果指定了 compare 參數(shù),則一定要有 start 參數(shù)。string1 必要參數(shù)。接受搜索的字符串表達式。string2 必要參數(shù)。被搜索的字符串表達式。Compare 可選參數(shù)。指定字符串比較方式。如果 compare 是 Null,將發(fā)生錯誤。如果省略 compare,Option Compare語句 的設(shè)置將決定比較的類型。compare 參數(shù)設(shè)置為: -1 使用Option Compare語句設(shè)置執(zhí)行一個比較。 0 執(zhí)行二進制比較(區(qū)分大小寫)。 1 執(zhí)行原文的比較(不區(qū)分大小寫)。如:printf Instr(2,”ABCDEFG”,”EF”) 返回5(p36-1.vbp)InStrRev函數(shù)返回一個字符串在另一個字符串中出現(xiàn)的位置,從字符串的末尾算起。語法格式: InstrRev(string1, string2, start, compare)例instrrev(“ABCDEFEFG”,”EF”) 返回7Join函數(shù)返回一個字符串,該字符串是通過連接某個數(shù)組中的多個子字符串而創(chuàng)建的。語法格式: Join(list, delimiter)list 必需的。包含被連接子字符串的一維數(shù)組。Delimiter 可選的。在返回字符串中用于分隔子字符串的字符。如果忽略該項,則使用空格(“ ”)來分隔子字符串。如果delimiter是零長度字符串(“”),則列表中的所有項目都連接在一起,中間沒有分隔符。如:a = Array(123, ab, c)Print Join(a, “”) 輸出123abcLeft 函數(shù)返回 Variant (String),其中包含字符串中從左邊算起指定數(shù)量的字符。語法格式: Left(string, length)或Left$(string,length)String 必要參數(shù)。字符串表達式其中最左邊的那些字符將被返回。如果 string 包含 Null,將返回 Null。Length 必要參數(shù);為 Variant (Long)。數(shù)值表達式,指出將返回多少個字符。如果為 0,返回零長度字符串 ()。如果大于或等于 string 的字符數(shù),則返回整個字符串。說明:欲知 string 的字符數(shù),使用 Len 函數(shù)。Print Left(“ABCDEFG”, 3) 輸出“ABC”Len 函數(shù)返回 Long,其中包含字符串內(nèi)字符的數(shù)目,或是存儲一變量所需的字節(jié)數(shù)。語法格式: Len(string | varname)string任何有效的字符串表達式。如果 string 包含 Null,會返回 Null。Varname任何有效的變量名稱。如果 varname 包含 Null,會返回 Null。如果 varname 是 Variant,Len 會視其為 String 并且總是返回其包含的字符數(shù)。說明:兩個可能的參數(shù)必須有其一(而且只能有其一)。如為用戶定義類型,Len 會返回其寫至文件的大小。注意:LenB 函數(shù)作用于字符串中的字節(jié)數(shù)據(jù),如同在雙字節(jié)字符集(DBCS)語言中一樣。所以 LenB 返回的是用于代表字符串的字節(jié)數(shù),而不是返回字符串中字符的數(shù)量。如為用戶自定義類型,LenB 返回在內(nèi)存中的大小,包括元素之間的襯墊。當在用戶自定義數(shù)據(jù)類型中使用變長字符串時,Len 可能不能確定實際存儲所需的字節(jié)數(shù)目。Print Len(“AB高等教育”) 輸出6Print LenB(“AB高等教育”) 輸出12LTrim、RTrim與 Trim 函數(shù)返回 Variant (String),其中包含指定字符串的拷貝,沒有前導(dǎo)空白 (LTrim)、尾隨空白 (RTrim) 或前導(dǎo)和尾隨空白 (Trim)。語法格式:LTrim(string)RTrim(string)Trim(string)必要的 string 參數(shù)可以是任何有效的字符串表達式。如果 string 包含 Null,將返回 Null。Print LTrim(“ ABCD”) 輸出“ABCD”Mid 函數(shù)返回 Variant (String),其中包含字符串中指定數(shù)量的字符。語法格式: Mid(string, start, length)string必要參數(shù)。字符串表達式,從中返回字符。如果 string 包含 Null,將返回 Null。start必要參數(shù)。為 Long。string 中被取出部分的字符位置。如果 start 超過 string 的字符數(shù),Mid 返回零長度字符串 ()。length可選參數(shù);為 Variant (Long)。要返回的字符數(shù)。如果省略或 length 超過文本的字符數(shù)(包括 start 處的字符),將返回字符串中從 start 到尾端的所有字符。注意:MidB 函數(shù)作用于字符串中包含的字節(jié)數(shù)據(jù),如同在雙字節(jié)字符集(DBCS)語言中一樣。因此其參數(shù)指定的是字節(jié)數(shù),而不是字符數(shù)。Print Mid(“ABCDEFG”, 2, 3) 輸出“BCD”Replace函數(shù)返回一個字符串,該字符串中指定的子字符串已被替換成另一子字符串,并且替換發(fā)生的次數(shù)也是指定的。語法格式:Replace(expression,find,replacewith,start,count,compare)expression必需的。字符串表達式,包含要替換的子字符串。find必需的。要搜索到的子字符串。replacewith必需的。用來替換的子字符串。start可選的。在表達式中子字符串搜索的開始位置。如果忽略,假定從1開始。count可選的。子字符串進行替換的次數(shù)。如果忽略,缺省值是 1,它表明進行所有可能的替換。compare可選的。數(shù)字值,表示判別子字符串時所用的比較方式。說明:Replace函數(shù)的返回值是一個字符串,但是,其中從start所指定的位置開始,到expression字符串的結(jié)尾處的一段子字符串已經(jīng)發(fā)生過替換動作。并不是原字符串從頭到尾的一個復(fù)制。Print Replace(ABCDABCD, CD, 123) 返回AB123AB123Right 函數(shù)返回 Variant (String),其中包含從字符串右邊取出的指定數(shù)量的字符。語法格式: Right(string, length)string必要參數(shù)。字符串表達式,從中最右邊的字符將被返回。如果 string 包含 Null,將返回 Null。length必要參數(shù);為 Variant (Long)。為數(shù)值表達式,指出想返回多少字符。如果為 0,返回零長度字符串 ()。如果大于或等于 string 的字符數(shù),則返回整個字符串。注意:RightB 函數(shù)作用于包含在字符串中的字節(jié)數(shù)據(jù)。所以 length 指定的是字節(jié)數(shù),而不是指定返回的字符數(shù)。Print Right(“ABCDEFG”, 3) 輸出“EFG”Space 函數(shù)返回特定數(shù)目空格的 Variant (String)。語法格式:Space(number)number 參數(shù)為字符串中想要的空格數(shù)。說明:Space 函數(shù)在格式輸出或清除固定長度字符串數(shù)據(jù)時很有用。Split函數(shù)返回一個下標從零開始的一維數(shù)組,它包含指定數(shù)目的子字符串。語法格式:Split(expression, delimiter, count, compare)expression必需的。包含子字符串和分隔符的字符串表達式 。如果expression是一個長度為零的字符串(),Split則返回一個空數(shù)組,即沒有元素和數(shù)據(jù)的數(shù)組。delimiter可選的。用于標識子字符串邊界的字符串字符。如果忽略,則使用空格字符( )作為分隔符。如果delimiter是一個長度為零的字符串,則返回的數(shù)組僅包含一個元素,即完整的 expression字符串。count可選的。要返回的子字符串數(shù),1表示返回所有的子字符串。compare可選的。數(shù)字值,表示判別子字符串時使用的比較方式。s = Split(123,56,ab, ,)Print s(0), s(1), s(2)輸出:123 56 abStrComp 函數(shù)返回 Variant (Integer),為字符串比較的結(jié)果。語法格式:StrComp(string1, string2, compare)string1必要參數(shù)。任何有效的字符串表達式。string2必要參數(shù)。任何有效的字符串表達式。Compare可選參數(shù)。指定字符串比較的類型。如果compare 參數(shù)是 Null,將發(fā)生錯誤。如果省略 compare,Option Compare 的設(shè)置將決定比較的類型。string1 小于 string2 返回:-1string1 等于 string2 返回:0string1 大于 string2 返回:1string1 或 string 2為 Null 返回:NullPrint StrComp(“ABCDEF”, “BC”) 輸出-1String 函數(shù)返回 Variant (String),其中包含指定長度重復(fù)字符的字符串。語法格式: String(number, character)number必要參數(shù);Long。返回的字符串長度。如果 number 包含 Null,將返回 Null。character必要參數(shù);Variant。為指定字符的字符碼或字符串表達式,其第一個字符將用于建立返回的字符串。如果 character 包含 Null,就會返回 Null。說明:如果指定 character 的數(shù)值大于 255,String 會按下面的公式將其轉(zhuǎn)為有效的字符碼:character Mod 256StrReverse函數(shù)返回一個字符串,其中一個指定子字符串的字符順序是反向的。語法格式: StrReverse(string1)string1是一個字符串,它的字符順序要被反向。如果string1是一個長度為零的字符串(“”),則返回一個長度為零的字符串。如果string1為Null,則產(chǎn)生一個錯誤。例(p36-1.vbp)字符串函數(shù)Private Sub Command1_Click()ClsPrint InStr(2, ABCDEFG, EF)Print InStrRev(ABCDEFEFG, EF)a = Array(123, ab, c)Print Join(a, )Print Left(ABCDEFG, 3)Print Left$(ABCDEFG, 3)Print Len(AB高等教育)Print LenB(AB高等教育)Print LTrim( ABCD)Print Mid(ABCDEFG, 2, 3)Print Replace(ABCDABCD, CD, 123)Print Right(ABCDEFG, 3)s = Split(123,56,ab, ,)Print s(0), s(1), s(2)Print StrComp(ABCDEF, BC)Print String(3, ABCDEF)End Sub例(P36-2.VBP)Len()求字符串的字符數(shù),LenB()求字符串的字節(jié)數(shù),strconv()完成unicode與DBCS之間的轉(zhuǎn)換.Private Sub Command1_Click() Dim s1 As String, s2 As String, s3 As String s1 = “
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海南思政黨史課題申報書
- 材料課題申報書范文
- 辦公隔斷合同范例
- 假肢定制合同范例
- 臨滄代理記賬合同范本
- 甘肅教學(xué)課題申報書
- 下水道整修合同范本
- 合法派遣合同范本
- 書畫掛牌合同范本
- 公司激勵股合同范本
- 急診醫(yī)院感染與控制課件
- 人教版 七年級英語下冊 UNIT 2 單元綜合測試卷(2025年春)
- 2024年“新能源汽車裝調(diào)工”技能及理論知識考試題與答案
- 【地理】非洲-位置與范圍 高原為主的地形課件-2024-2025學(xué)年湘教版(2024)七下
- 搶救車的管理
- GB/T 44927-2024知識管理體系要求
- GB/T 17350-2024專用汽車和專用掛車分類、名稱及型號編制方法
- 2024年07月山東省泰山財產(chǎn)保險股份有限公司2024年夏季校園招考29名工作人員筆試歷年參考題庫附帶答案詳解
- 臨床護理死亡病例討論
- 2025年廣東韶關(guān)城投集團招聘筆試參考題庫含答案解析
- 醫(yī)療器械生產(chǎn)企業(yè)并購合同
評論
0/150
提交評論