vb6.0運(yùn)算符大全精編文檔_第1頁(yè)
vb6.0運(yùn)算符大全精編文檔_第2頁(yè)
vb6.0運(yùn)算符大全精編文檔_第3頁(yè)
vb6.0運(yùn)算符大全精編文檔_第4頁(yè)
vb6.0運(yùn)算符大全精編文檔_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Vb6.0運(yùn)算符1、&運(yùn)算符用來(lái)強(qiáng)制兩個(gè)表達(dá)式作字符串連接。語(yǔ)法result=expression1&expression2&運(yùn)算符的語(yǔ)法具有以下幾個(gè)部分:部分描述result必需的;任何String或Variant變量。expression1必需的;任何表達(dá)式。expression2必需的;任何表達(dá)式。說(shuō)明如果expression不是字符串,則將其轉(zhuǎn)換成String變體。如果兩個(gè)表達(dá)式都是字符串表達(dá)式,則result的數(shù)據(jù)類(lèi)型是String;否則result是String變體。如果兩個(gè)表達(dá)式都是Null,則result也是Null。但是,只要有一個(gè)expression是Null,那么在與其它表達(dá)式連接時(shí),都將其作為長(zhǎng)度為零的字符串("")處理。任何Empty類(lèi)型表達(dá)式也作為長(zhǎng)度為零的字符串處理。&運(yùn)算符示例本示例使用&運(yùn)算符將字符串串接起來(lái)。DimMyStrMyStr="Hello"&"World"'返回"HelloWorld"。MyStr="Check"&123&"Check"'返回"Check123Check"。2、*運(yùn)算符

用來(lái)將兩數(shù)相乘。語(yǔ)法result=number1*number2*運(yùn)算符的語(yǔ)法具有以下幾個(gè)部分:部分描述result必需的;任何數(shù)值變量。number1必需的;任何數(shù)值表達(dá)式。number2必需的;任何數(shù)值表達(dá)式。說(shuō)明result的數(shù)據(jù)類(lèi)型通常與最精確的表達(dá)式的數(shù)據(jù)類(lèi)型相同。精確度由最低到最高的順序是Byte、Integer、Long、Single、Currency、Double和Decimal。下列情況是例外:如果則result為乘法運(yùn)算有一個(gè)Single和一個(gè)Long,轉(zhuǎn)換成Double。result的數(shù)據(jù)類(lèi)型是Long、Single或Date變體,且超出正確范圍,轉(zhuǎn)換成有Double的Variant。result的數(shù)據(jù)類(lèi)型是Byte變體,且超出正確范圍,轉(zhuǎn)換成Integer變體。result的數(shù)據(jù)類(lèi)型是Integer變體,且超出正確范圍,轉(zhuǎn)換成Long變體。如果有一個(gè)或兩個(gè)表達(dá)式是Null表達(dá)式,則result為Null。如果一個(gè)表達(dá)式是Empty,則作為0處理。注意乘法用到的精確度等級(jí)與加法和減法用到的精確度等級(jí)不一樣。*運(yùn)算符示例本示例使用*運(yùn)算符來(lái)計(jì)算兩數(shù)的乘積。DimMyValueMyValue=2*2'返回4。MyValue=459.35*334.90'返回153836.315。3、+運(yùn)算符

用來(lái)求兩數(shù)之和。語(yǔ)法result=expression1+expression2+運(yùn)算符的語(yǔ)法具有以下幾個(gè)部分:部分描述result必需的;任何數(shù)值變量。expression1必需的;任何表達(dá)式。expression2必需的;任何表達(dá)式。說(shuō)明在使用+運(yùn)算符時(shí)有可能無(wú)法確定是做加法還是做字符串連接。為避免混淆,請(qǐng)使用&運(yùn)算符進(jìn)行連接,并且改進(jìn)程序代碼的可讀性。如果至少有一個(gè)表達(dá)式不是Variant,則可運(yùn)用以下法則:如果則兩個(gè)表達(dá)式都是數(shù)值數(shù)據(jù)類(lèi)型(Byte、Boolean、Integer、Long、Single、Double、Date、Currency或是Decimal)相加。兩個(gè)表達(dá)式都是String連接。一個(gè)表達(dá)式是數(shù)值數(shù)據(jù)類(lèi)型而另一個(gè)是Null之外的任意Variant。相加。一個(gè)表達(dá)式是String而其它是Null之外的任意Variant。連接。一個(gè)表達(dá)式是EmptyVariant返回另一個(gè)不變的表達(dá)式作為result。一個(gè)表達(dá)式是數(shù)值數(shù)據(jù)類(lèi)型,而另一個(gè)是String產(chǎn)生一個(gè)類(lèi)型不匹配錯(cuò)誤。每個(gè)表達(dá)式都是Nullresult是Null。如果兩個(gè)表達(dá)式都是Variant表達(dá)式,則可運(yùn)用下列規(guī)則:如果則兩個(gè)Variant表達(dá)式都是數(shù)值相加。兩個(gè)Variant表達(dá)式都是字符串連接。一個(gè)Variant表達(dá)式是數(shù)值而另一個(gè)是字符串相加。對(duì)于只有數(shù)值數(shù)據(jù)類(lèi)型表達(dá)式的單純加法,result的數(shù)據(jù)類(lèi)型通常與其中最精確的表達(dá)式的數(shù)據(jù)類(lèi)型相同。精確度由最低到最高的順序是Byte、Integer、Long、Single、Double、Currency和Decimal。但下列情況例外:如果則result為一個(gè)Single和一個(gè)Long相加,一個(gè)Double。result的數(shù)據(jù)類(lèi)型是Long、Single或Date變體,且越出正確范圍,轉(zhuǎn)換成Double變體。result的數(shù)據(jù)類(lèi)型是Byte變體,且超過(guò)本身的正確范圍時(shí),轉(zhuǎn)換成Integer變體。result的數(shù)據(jù)類(lèi)型是Integer變體,且超過(guò)本身的正確范圍時(shí),轉(zhuǎn)換成Long變體。將一個(gè)Date加到任何數(shù)據(jù)類(lèi)型上,一個(gè)Date。如果有一個(gè)或兩個(gè)表達(dá)式是Null表達(dá)式,則result為Null。如果兩個(gè)表達(dá)式都是Empty,則result是Integer。但是,如果只有一個(gè)表達(dá)式是Empty,則另一個(gè)表達(dá)式原封不動(dòng)地作為result返回。注意加法和減法用到的精確度等級(jí)與乘法用到的精確度等級(jí)不一樣。+運(yùn)算符示例本示例使用+運(yùn)算符來(lái)計(jì)算數(shù)值的和。+運(yùn)算符也可以用來(lái)做字符串的串接操作。不過(guò),最好還是使用&運(yùn)算符來(lái)做字符串的串接操作。如果+運(yùn)算符兩邊的表達(dá)式中混著字符串及數(shù)值的話,其結(jié)果會(huì)是數(shù)值的求和。如果都是字符串作“相加”,則返回串接起來(lái)的字符串。DimMyNumber,Var1,Var2MyNumber=2+2'返回4。MyNumber=4257.04+98112'返回102369.04。Var1="34":Var2=6'初始化混合變量的值。MyNumber=Var1+Var2'返回40。Var1="34":Var2="6"'用字符串初始化混合變量的值。MyNumber=Var1+Var2'返回"346"(字符串被串接起來(lái))。4、–運(yùn)算符

用來(lái)求兩數(shù)之差或表示數(shù)值表達(dá)式的負(fù)值。語(yǔ)法1result=number1-number2語(yǔ)法2-number–運(yùn)算符的語(yǔ)法具有以下幾個(gè)部分:部分描述result必需的;任何數(shù)值變量。number必需的;任何數(shù)值表達(dá)式。number1必需的;任何數(shù)值表達(dá)式。number2必需的;任何數(shù)值表達(dá)式。說(shuō)明在語(yǔ)法1中,–運(yùn)算符是求兩數(shù)之差的算術(shù)減法運(yùn)算符。在語(yǔ)法2中,–運(yùn)算符為一元負(fù)運(yùn)算符,說(shuō)明表達(dá)式的值為負(fù)值。result的數(shù)據(jù)類(lèi)型通常與最精確的表達(dá)式的數(shù)據(jù)類(lèi)型相同。精確度由最低到最高的順序是Byte、Integer、Long、Single、Double、Currency和Decimal。下列情況例外:如果則result為當(dāng)減法運(yùn)算中有一個(gè)Single和一個(gè)Long,轉(zhuǎn)換成一個(gè)Double。result的數(shù)據(jù)類(lèi)型是一個(gè)Long、Single或Date變體,且超出正確范圍,轉(zhuǎn)換成包含Double的Variant。result的數(shù)據(jù)類(lèi)型是一個(gè)Byte變體,且超出正確范圍,轉(zhuǎn)換成一個(gè)Integer變體。result的數(shù)據(jù)類(lèi)型是一個(gè)Integer變體,且超出正確范圍,轉(zhuǎn)換成一個(gè)Long變體。減法運(yùn)算中有Date和其它任何數(shù)據(jù)類(lèi)型,一個(gè)Date。減法運(yùn)算中有兩個(gè)Date表達(dá)式,一個(gè)Double。如果有一個(gè)或兩個(gè)表達(dá)式是Null表達(dá)式,則result為Null。如果一個(gè)表達(dá)式是Empty,則作為0處理。注意加法和減法用到的精確度等級(jí)與乘法用到的精確度等級(jí)不一樣。-運(yùn)算符示例本示例使用-運(yùn)算符來(lái)計(jì)算兩數(shù)值的差。DimMyResultMyResult=4-2'返回2。MyResult=459.35-334.90'返回124.45。5、/運(yùn)算符

用來(lái)進(jìn)行兩個(gè)數(shù)的除法運(yùn)算并返回一個(gè)浮點(diǎn)數(shù)。語(yǔ)法result=number1/number2/運(yùn)算符的語(yǔ)法具有以下幾個(gè)部分:部分描述result必需的;任何數(shù)值變量。number1必需的;任何數(shù)值表達(dá)式。number2必需的;任何數(shù)值表達(dá)式。說(shuō)明result的數(shù)據(jù)類(lèi)型通常是Double或Double變體。下列情況是例外:如果則result為兩個(gè)表達(dá)式都是Byte、Integer或Single表達(dá)式時(shí),一個(gè)Single,除非超出正確范圍;如果發(fā)生這種情況,則產(chǎn)生錯(cuò)誤。兩個(gè)表達(dá)式都是Byte、Integer或Single變體,一個(gè)Single變體,除非已超出正確范圍;一旦發(fā)生這種情況,result是一個(gè)包含Double的Variant。除法運(yùn)算中有一個(gè)Decimal及其它任何數(shù)據(jù)類(lèi)型,一個(gè)Decimal數(shù)據(jù)類(lèi)型。如果有一個(gè)或是兩個(gè)表達(dá)式是Null表達(dá)式,則result為Null。如果一個(gè)表達(dá)式是Empty則作為0處理。/運(yùn)算符示例本示例使用/運(yùn)算符來(lái)計(jì)算浮點(diǎn)數(shù)除法。DimMyValueMyValue=10/4'返回2.5。MyValue=10/3'返回3.333333。6、\運(yùn)算符

用來(lái)對(duì)兩個(gè)數(shù)作除法并返回一個(gè)整數(shù)。語(yǔ)法result=number1\number2\運(yùn)算符的語(yǔ)法具有以下幾個(gè)部分:部分描述result必需的;任何數(shù)值變量。number1必需的;任何數(shù)值表達(dá)式。number2必需的;任何數(shù)值表達(dá)式。說(shuō)明在進(jìn)行除法運(yùn)算之前,數(shù)值表達(dá)式通過(guò)舍去小數(shù)部分轉(zhuǎn)換成Byte、Integer或Long表達(dá)式。通常,無(wú)論result是不是整數(shù),result的數(shù)據(jù)類(lèi)型都是Byte、Byte變體、Integer、Integer變體、Long或Long變體。任何小數(shù)部分都被刪除。但是,如果任何一個(gè)表達(dá)式是Null,則result為Null。如果一個(gè)表達(dá)式是Empty,則作為0處理。\運(yùn)算符示例本示例使用\運(yùn)算符來(lái)計(jì)算整型除法。DimMyValueMyValue=11\4'返回2。MyValue=9\3'返回3。MyValue=100\3'返回33。7、^運(yùn)算符

用來(lái)求一個(gè)數(shù)字的某次方,次方數(shù)為exponent值。語(yǔ)法result=number^exponent^運(yùn)算符的語(yǔ)法具有以下幾個(gè)部分:部分描述result必需的;任何數(shù)值變量。number必需的;任何數(shù)值表達(dá)式。exponent必需的;任何數(shù)值表達(dá)式。說(shuō)明只有當(dāng)exponent為整數(shù)值時(shí),number才可以為負(fù)數(shù)。在表達(dá)式中執(zhí)行多個(gè)指數(shù)運(yùn)算時(shí),^運(yùn)算符的計(jì)算順序從左到右。result的數(shù)據(jù)類(lèi)型通常是Double或包含Double的Variant。但是,如果number或exponent中有一個(gè)是Null表達(dá)式,則result也是Null。^運(yùn)算符示例本示例使用^運(yùn)算符來(lái)表示某數(shù)的乘方的指數(shù)值。DimMyValueMyValue=2^2'返回4。MyValue=3^3^3'返回19683。MyValue=(-5)^3'返回-125。8、=操作符

描述用于對(duì)一個(gè)變量或?qū)傩再x值。語(yǔ)法variable=value=操作符語(yǔ)法有如下幾部分:部分描述variable任何變量或任何可寫(xiě)的屬性。value任何數(shù)值型或字符串文字、常數(shù)或表達(dá)式。說(shuō)明等號(hào)左邊的名字可以是一個(gè)簡(jiǎn)單的標(biāo)量變量或一個(gè)數(shù)組的元素。等號(hào)左邊的屬性只能是運(yùn)行時(shí)可寫(xiě)的屬性。9、AddressOf運(yùn)算符

一個(gè)一元運(yùn)算符,它將其后面的過(guò)程的地址傳遞給一個(gè)API過(guò)程,該API過(guò)程在參數(shù)表對(duì)應(yīng)位置中需要一個(gè)函數(shù)指針。語(yǔ)法AddressOfprocedurename必需的procedurename指定要傳遞的地址是哪一個(gè)過(guò)程的地址。這個(gè)過(guò)程必須是發(fā)出調(diào)用命令的工程中的一個(gè)標(biāo)準(zhǔn)模塊模塊里的一個(gè)過(guò)程。說(shuō)明當(dāng)一個(gè)過(guò)程的名稱(chēng)出現(xiàn)在一個(gè)參數(shù)列表中時(shí),通常該過(guò)程已經(jīng)被計(jì)算,并且該過(guò)程返回值的地址也會(huì)被傳遞。AddressOf允許該過(guò)程的地址被傳遞給動(dòng)態(tài)鏈接庫(kù)(DLL)中的一個(gè)WindowsAPI函數(shù),而不是傳遞該過(guò)程的返回值。API函數(shù)然后就可以使用這個(gè)地址來(lái)調(diào)用相應(yīng)的Basic過(guò)程,這個(gè)過(guò)程就是我們所知道的回調(diào)。AddressOf運(yùn)算符只出現(xiàn)在對(duì)API過(guò)程的調(diào)用中。盡管可以使用AddressOf運(yùn)算符在Basic過(guò)程之間傳遞過(guò)程指針,卻不能通過(guò)這樣的一個(gè)指針從Basic內(nèi)部調(diào)用一個(gè)函數(shù)。這就是說(shuō),例如,一個(gè)使用Basic編寫(xiě)的類(lèi)不能使用這樣的一個(gè)指針來(lái)回調(diào)自己的控制器。當(dāng)使用AddressOf運(yùn)算符在Basic內(nèi)的過(guò)程之間傳遞一個(gè)過(guò)程的指針時(shí),被調(diào)用過(guò)程的參數(shù)類(lèi)型必須定義為AsLong。警告如果不能完全理解函數(shù)回調(diào)的概念,則使用AddressOf運(yùn)算符可能會(huì)導(dǎo)致意想不到的結(jié)果。必須理解回調(diào)的Basic部份是如何工作的,以及接受所傳遞的函數(shù)地址的DLL的代碼是如何工作的。調(diào)試這樣的交互操作是非常困難的,因?yàn)樵摮绦蚝烷_(kāi)發(fā)環(huán)境運(yùn)行在相同的進(jìn)程中。在某些情況下,系統(tǒng)的調(diào)試也許是不可能的。注意可以使用MicrosoftVisualC++(或者類(lèi)似的工具)編譯的DLLs來(lái)創(chuàng)建自己的回調(diào)函數(shù)原型。要使用AddressOf運(yùn)算符來(lái)工作,您的原型必需使用__stdcall調(diào)用約定。缺省的調(diào)用約定(__cdecl)不能與AddressOf運(yùn)算符一起工作。因?yàn)橐粋€(gè)回調(diào)的調(diào)用程序不在用戶(hù)自己的程序中,所以很重要的一點(diǎn)是要保證回調(diào)過(guò)程中的錯(cuò)誤不被回傳到調(diào)用者。可以通過(guò)把OnErrorResumeNext語(yǔ)句放置于回調(diào)過(guò)程的起始處來(lái)達(dá)到這個(gè)要求。AddressOf運(yùn)算符示例下面的示例創(chuàng)建一個(gè)帶有一個(gè)列表框的窗體,該列表框包含您的系統(tǒng)中的字體的按字母順序排序的列表。要運(yùn)行該示例,請(qǐng)創(chuàng)建一個(gè)帶有一個(gè)列表框的窗體。窗體部分的代碼如下:OptionExplicitPrivateSubForm_Load()Module1.FillListWithFontsList1EndSub把下面的代碼放置到一個(gè)模塊中。EnumFontFamilies函數(shù)定義中的第三個(gè)參數(shù)是一個(gè)長(zhǎng)整形,它代表一個(gè)過(guò)程。該參數(shù)必須包含這個(gè)過(guò)程的地址,而不是這個(gè)過(guò)程的返回值。在對(duì)EnumFontFamilies的調(diào)用中,第三個(gè)參數(shù)需要AddressOf運(yùn)算符來(lái)返回EnumFontFamProc過(guò)程的地址,該過(guò)程是當(dāng)調(diào)用WindowsAPI函數(shù),即EnumFontFamilies時(shí)提供的回調(diào)過(guò)程的名稱(chēng)。當(dāng)把AddressOfEnumFontFamProc傳遞給EnumFontFamilies時(shí),Windows就會(huì)為系統(tǒng)中的每一個(gè)字體庫(kù)調(diào)用一次EnumFontFamProc。傳遞給EnumFontFamilies的最后一個(gè)參數(shù)指定用來(lái)顯示信息的列表框。'字體枚舉類(lèi)型PublicConstLF_FACESIZE=32PublicConstLF_FULLFACESIZE=64TypeLOGFONTlfHeightAsLonglfWidthAsLonglfEscapementAsLonglfOrientationAsLonglfWeightAsLonglfItalicAsBytelfUnderlineAsBytelfStrikeOutAsBytelfCharSetAsBytelfOutPrecisionAsBytelfClipPrecisionAsBytelfQualityAsBytelfPitchAndFamilyAsBytelfFaceName(LF_FACESIZE)AsByteEndTypeTypeNEWTEXTMETRICtmHeightAsLongtmAscentAsLongtmDescentAsLongtmInternalLeadingAsLongtmExternalLeadingAsLongtmAveCharWidthAsLongtmMaxCharWidthAsLongtmWeightAsLongtmOverhangAsLongtmDigitizedAspectXAsLongtmDigitizedAspectYAsLongtmFirstCharAsBytetmLastCharAsBytetmDefaultCharAsBytetmBreakCharAsBytetmItalicAsBytetmUnderlinedAsBytetmStruckOutAsBytetmPitchAndFamilyAsBytetmCharSetAsBytentmFlagsAsLongntmSizeEMAsLongntmCellHeightAsLongntmAveWidthAsLongEndType'ntmFlags段標(biāo)志PublicConstNTM_REGULAR=&H40&PublicConstNTM_BOLD=&H20&PublicConstNTM_ITALIC=&H1&'tmPitchAndFamily標(biāo)志PublicConstTMPF_FIXED_PITCH=&H1PublicConstTMPF_VECTOR=&H2PublicConstTMPF_DEVICE=&H8PublicConstTMPF_TRUETYPE=&H4PublicConstELF_VERSION=0PublicConstELF_CULTURE_LATIN=0'EnumFonts掩碼PublicConstRASTER_FONTTYPE=&H1PublicConstDEVICE_FONTTYPE=&H2PublicConstTRUETYPE_FONTTYPE=&H4DeclareFunctionEnumFontFamiliesLib"gdi32"Alias_"EnumFontFamiliesA"_(ByValhDCAsLong,ByVallpszFamilyAsString,_ByVallpEnumFontFamProcAsLong,LParamAsAny)AsLongDeclareFunctionGetDCLib"user32"(ByValhWndAsLong)AsLongDeclareFunctionReleaseDCLib"user32"(ByValhWndAsLong,_ByValhDCAsLong)AsLongFunctionEnumFontFamProc(lpNLFAsLOGFONT,lpNTMAsNEWTEXTMETRIC,_ByValFontTypeAsLong,LParamAsListBox)AsLongDimFaceNameAsStringDimFullNameAsStringFaceName=StrConv(lpNLF.lfFaceName,vbUnicode)LParam.AddItemLeft$(FaceName,InStr(FaceName,vbNullChar)-1)EnumFontFamProc=1EndFunctionSubFillListWithFonts(LBAsListBox)DimhDCAsLongLB.ClearhDC=GetDC(LB.hWnd)EnumFontFamilieshDC,vbNullString,AddressOfEnumFontFamProc,LBReleaseDCLB.hWnd,hDCEndSub10、And運(yùn)算符

用來(lái)對(duì)兩個(gè)表達(dá)式進(jìn)行邏輯連接。語(yǔ)法result=expression1Andexpression2And運(yùn)算符的語(yǔ)法具有以下幾個(gè)部分:部分描述result必需的;任何數(shù)值變量。expression1必需的;任何表達(dá)式。expression2必需的;任何表達(dá)式。說(shuō)明如果兩個(gè)表達(dá)式的值都是True,則result是True。如果其中一個(gè)表達(dá)式的值是False,則result是False。下列表格說(shuō)明如何確定result:如果expression1為且expression2為則result為T(mén)rueTrueTrueTrueFalseFalseTrueNullNullFalseTrueFalseFalseFalseFalseFalseNullFalseNullTrueNullNullFalseFalseNullNullNullAnd運(yùn)算符還對(duì)兩個(gè)數(shù)值表達(dá)式中位置相同的位進(jìn)行逐位比較,并根據(jù)下表對(duì)result中相應(yīng)的位進(jìn)行設(shè)置:如果在expression1的位為且在expression2中的位為result為000010100111And運(yùn)算符示例本示例使用And運(yùn)算符來(lái)做兩個(gè)表達(dá)式結(jié)果的邏輯合?。╝logicalconjunction)。DimA,B,C,D,MyCheckA=10:B=8:C=6:D=Null'設(shè)置變量初值。MyCheck=A>BAndB>C'返回True。MyCheck=B>AAndB>C'返回False。MyCheck=A>BAndB>D'返回Null。MyCheck=AAndB'返回8(位比較的結(jié)果)。11、比較運(yùn)算符

用來(lái)比較表達(dá)式。語(yǔ)法result=expression1comparisonoperatorexpression2result=object1Isobject2result=stringLikepattern比較運(yùn)算符具有以下幾個(gè)部分:部分描述result必需的;任何數(shù)值變量。expression必需的;任何表達(dá)式。comparisonoperator必需的;任何比較運(yùn)算符。object必需的;任何對(duì)象名稱(chēng)。string必需的;任何字符串表達(dá)式。pattern必需的;任何字符串表達(dá)式或字符的范圍。說(shuō)明下列表格中有一系列比較運(yùn)算符以及判定result是True、False還是Null的條件:運(yùn)算符TrueifFalseifNullif<(小于)expression1<expression2expression1>=expression2expression1orexpression2=Null<=(小于或等于)expression1<=expression2expression1>expression2expression1orexpression2=Null>(大于)expression1>expression2expression1<=expression2expression1orexpression2=Null>=(大于或等于)expression1>=expression2expression1<expression2expression1orexpression2=Null=(等于)expression1=expression2expression1<>expression2expression1orexpression2=Null<>(不等于)expression1<>expression2expression1=expression2expression1orexpression2=Null注意Is和Like運(yùn)算符有特定的比較功能,它們不同於表格中的運(yùn)算符。在比較兩個(gè)表達(dá)式的時(shí)候可能難以確定將要比較的表達(dá)式是數(shù)字還是字符串。下列表格將說(shuō)明如何比較表達(dá)式,或說(shuō)明當(dāng)其中一個(gè)表達(dá)式不是Variant時(shí),如何獲得比較的結(jié)果。如果則兩個(gè)表達(dá)式都是數(shù)值數(shù)據(jù)類(lèi)型(Byte、Boolean、Integer、Long、Single、Double、Date、Currency或Decimal)進(jìn)行數(shù)值比較。兩個(gè)表達(dá)式都是String進(jìn)行字符串比較一個(gè)表達(dá)式是數(shù)值數(shù)據(jù)類(lèi)型而另一個(gè)是數(shù)字Variant、或可以為一數(shù)字進(jìn)行數(shù)值比較。一個(gè)表達(dá)式是數(shù)值數(shù)據(jù)類(lèi)型而另一個(gè)是不能轉(zhuǎn)換成數(shù)字的字符串Variant產(chǎn)生類(lèi)型不匹配的錯(cuò)誤。一個(gè)表達(dá)式是String,而另一個(gè)是除了Null以外的任何Variant進(jìn)行字符串比較。一個(gè)表達(dá)式是Empty而另一個(gè)是數(shù)值數(shù)據(jù)類(lèi)型進(jìn)行數(shù)值比較,使用0作為Empty表達(dá)式。一個(gè)表達(dá)式是Empty而另一個(gè)是String進(jìn)行字符串比較,使用長(zhǎng)度為零的字符串("")作為Empty表達(dá)式。如果expression1和expression2都是Variant表達(dá)式,則它們的基本類(lèi)型決定了比較方式。下列表格說(shuō)明如何比較表達(dá)式,或指出通過(guò)比較得到的結(jié)果,此結(jié)果取決于Variant的基本類(lèi)型:如果則兩個(gè)Variant表達(dá)式都是數(shù)值進(jìn)行數(shù)值比較。兩個(gè)Variant表達(dá)式都是字符串進(jìn)行字符串比較。一個(gè)Variant表達(dá)式是數(shù)值而另一個(gè)是字符串?dāng)?shù)值表達(dá)式小于字符串表達(dá)式。一個(gè)Variant表達(dá)式是Empty而另一個(gè)是數(shù)值進(jìn)行數(shù)值比較,使用0作為Empty表達(dá)式。一個(gè)Variant表達(dá)式是Empty而另一個(gè)是字符串進(jìn)行字符串比較,使用長(zhǎng)度為零的字符串("")作為Empty表達(dá)式。兩個(gè)Variant表達(dá)式都是Empty表達(dá)式相等。當(dāng)一個(gè)Single與一個(gè)Double作比較時(shí),Double會(huì)進(jìn)行舍入處理而與此Single有相同的精確度。如果一個(gè)Currency與一個(gè)Single或Double進(jìn)行比較,則Single或Double轉(zhuǎn)換成一個(gè)Currency。與此相似,當(dāng)一個(gè)Decimal要與一個(gè)Single或Double進(jìn)行比較時(shí),Single或Double會(huì)轉(zhuǎn)換成一個(gè)Decimal。對(duì)于Currency,任何小于.0001的小數(shù)將被舍棄,對(duì)于Decimal,任何小于1E-28的小數(shù)將被舍棄,或者可能產(chǎn)生溢出錯(cuò)誤。舍棄這樣的小數(shù)部分會(huì)使原來(lái)不相等的兩個(gè)數(shù)值經(jīng)過(guò)比較后相等。比較運(yùn)算符示例本示例示范各種“比較運(yùn)算符”的用法。這類(lèi)運(yùn)算符通常拿來(lái)做表達(dá)式結(jié)果的比較。DimMyResult,Var1,Var2MyResult=(45<35)'返回False。MyResult=(45=45)'返回True。MyResult=(4<>3)'返回True。MyResult=("5">"4")'返回True。Var1="5":Var2=4'設(shè)置變量初值。MyResult=(Var1>Var2)'返回True。Var1=5:Var2=EmptyMyResult=(Var1>Var2)'返回True。Var1=0:Var2=EmptyMyResult=(Var1=Var2)'返回True。12、Eqv運(yùn)算符

用來(lái)對(duì)兩個(gè)表達(dá)式進(jìn)行邏輯等價(jià)運(yùn)算。語(yǔ)法result=expression1Eqvexpression2Eqv運(yùn)算符的語(yǔ)法具有以下幾個(gè)部分:部分描述result必需的;任何數(shù)值變量。expression1必需的;任何表達(dá)式。expression2必需的;任何表達(dá)式。說(shuō)明如果有一個(gè)表達(dá)式是Null,則result也是Null。如果表達(dá)式都不是Null,則根據(jù)下表來(lái)確定result:如果expression1為且expression2為則result為T(mén)rueTrueTrueTrueFalseFalseFalseTrueFalseFalseFalseTrueEqv運(yùn)算符對(duì)兩個(gè)數(shù)值表達(dá)式中位置相同的位進(jìn)行逐位比較,并根據(jù)下表對(duì)result中相應(yīng)的位進(jìn)行設(shè)置:如果在expression1的位為且在expression2中的位為result為001010100111Eqv運(yùn)算符示例本示例使用Eqv運(yùn)算符來(lái)做兩個(gè)表達(dá)式結(jié)果的邏輯等價(jià)(logicalequivalence)。DimA,B,C,D,MyCheckA=10:B=8:C=6:D=Null'設(shè)置變量初值。MyCheck=A>BEqvB>C'返回True。MyCheck=B>AEqvB>C'返回False。MyCheck=A>BEqvB>D'返回Null。MyCheck=AEqvB'返回-3(位比較的結(jié)果)。13、Imp運(yùn)算符

用來(lái)對(duì)兩個(gè)表達(dá)式進(jìn)行邏輯蘊(yùn)涵運(yùn)算。語(yǔ)法result=expression1Impexpression2Imp運(yùn)算符的語(yǔ)法具有以下幾個(gè)部分:部分描述result必需的;任何數(shù)值變量。expression1必需的;任何表達(dá)式。expression2必需的;任何表達(dá)式。說(shuō)明下列表格說(shuō)明如何確定result:如果expression1為且expression2為則result為T(mén)rueTrueTrueTrueFalseFalseTrueNullNullFalseTrueTrueFalseFalseTrueFalseNullTrueNullTrueTrueNullFalseNullNullNullNullImp運(yùn)算符對(duì)兩個(gè)數(shù)值表達(dá)式中位置相同的位進(jìn)行逐位比較,并根據(jù)下表對(duì)result中相應(yīng)的位進(jìn)行設(shè)置:如果在expression1的位為且在expression2中的位為result為001011100111Imp運(yùn)算符示例本示例使用Imp運(yùn)算符來(lái)做兩個(gè)表達(dá)式結(jié)果的邏輯隱含式(logicalimplication)。DimA,B,C,D,MyCheckA=10:B=8:C=6:D=Null'設(shè)置變量初值。MyCheck=A>BImpB>C'返回True。MyCheck=A>BImpC>B'返回False。MyCheck=B>AImpC>B'返回True。MyCheck=B>AImpC>D'返回True。MyCheck=C>DImpB>A'返回Null。MyCheck=BImpA'返回-1(位比較的結(jié)果)。14、Is運(yùn)算符

用來(lái)比較兩個(gè)對(duì)象的引用變量。語(yǔ)法result=object1Isobject2Is運(yùn)算符的語(yǔ)法具有以下幾個(gè)部分:部分描述result必需的;任何數(shù)值變量。object1必需的;任何對(duì)象名稱(chēng)。object2必需的;任何對(duì)象名稱(chēng)。說(shuō)明如果object1和object2兩者引用相同的對(duì)象,則result為T(mén)rue;否則,result為False。有很多方法使兩個(gè)變量引用相同的對(duì)象。在以下示例中,A和B已被設(shè)置成與C引用相同的對(duì)象:SetA=B在下例中,A和B引用的對(duì)象與C相同:SetA=CSetB=CIs運(yùn)算符示例本示例使用Is運(yùn)算符來(lái)比較兩個(gè)對(duì)象引用。示例中的對(duì)象變量名只是作說(shuō)明用途的一般性名稱(chēng)而已。DimMyObject,YourObject,ThisObject,OtherObject,ThatObject,MyCheckSetYourObject=MyObject'指定對(duì)象引用。SetThisObject=MyObjectSetThatObject=OtherObjectMyCheck=YourObjectIsThisObject'返回True。MyCheck=ThatObjectIsThisObject'返回False。'假設(shè)MyObject<>OtherObjectMyCheck=MyObjectIsThatObject'返回False。15、Like運(yùn)算符

用來(lái)比較兩個(gè)字符串。語(yǔ)法result=stringLikepatternLike運(yùn)算符的語(yǔ)法具有以下幾個(gè)部分:部分描述result必需的;任何數(shù)值變量。string必需的;任何字符串表達(dá)式。pattern必需的;任何字符串表達(dá)式,遵循“說(shuō)明”中的模式匹配約定。說(shuō)明如果string與pattern匹配,則result為T(mén)rue;如果不匹配,則result為False。但是如果string或pattern中有一個(gè)為Null,則result為Null。Like運(yùn)算符的特性隨著OptionCompare語(yǔ)句而不同。每個(gè)模塊的缺省字符串比較方法是OptionCompareBinary。在字符串比較中,OptionCompareBinary的結(jié)果是根據(jù)字符的內(nèi)部二進(jìn)制表示法導(dǎo)出的排序順序得到的。在MicrosoftWindows中,排序順序由代碼頁(yè)決定。下例說(shuō)明通常二進(jìn)制的排序順序:A<B<E<Z<a<b<e<z<_<_<_<_<_<?在字符串比較中,OptionCompareText的結(jié)果是字符串比較,它建立在不區(qū)分大小寫(xiě)的文本排序順序基礎(chǔ)上,而這一排序順序是由系統(tǒng)的國(guó)別確定的。在對(duì)相同的字符使用OptionCompareText時(shí)會(huì)產(chǎn)生以下文本排序順序:(A=a)<(_=_)<(B=b)<(E=e)<(_=_)<(Z=z)<(_=_)內(nèi)建的模式匹配功能提供了多種工具來(lái)進(jìn)行字符串比較。有了模式匹配功能就可以使用通配符、字符串列表或字符區(qū)間的任何組合來(lái)匹配字符串。下列表格指出pattern中允許的字符以及它們與什么進(jìn)行匹配:pattern中的字符符合string中的?任何單一字符。*零個(gè)或多個(gè)字符。#任何一個(gè)數(shù)字(0–9)。[charlist]charlist.中的任何單一字符。[!charlist]不在charlist中的任何單一字符。在中括號(hào)([])中,可以用由一個(gè)或多個(gè)字符(charlist)組成的組與string中的任一字符進(jìn)行匹配,這個(gè)組幾乎包括任何一個(gè)字符代碼以及數(shù)字。注意為了與左括號(hào)([)、問(wèn)號(hào)(?)、數(shù)字符號(hào)(#)和星號(hào)(*)等特殊字符進(jìn)行匹配,可以將它們用方括號(hào)括起來(lái)。不能在一個(gè)組內(nèi)使用右括號(hào)(])與自身匹配,但在組外可以作為個(gè)別字符使用。通過(guò)在范圍的上、下限之間用連字符(–),charlist可以指定字符的范圍。例如,如果string中相應(yīng)字符的位置包括A–Z之間的任意大寫(xiě)字母,則[A-Z]得到一個(gè)匹配。不需要分界符,方括號(hào)內(nèi)就可以包括多個(gè)范圍。指定范圍的意義取決于運(yùn)行時(shí)的有效字符排序(正如OptionCompare和系統(tǒng)的國(guó)別設(shè)置所確定的,代碼在運(yùn)行之中)。使用OptionCompareBinary示例可以看到,范圍[A–E]與A、B和E相匹配。通過(guò)OptionCompareText可以看到,[A–E]與A,a,_,_,B,b,E,e相匹配。此范圍與_或_不匹配,因?yàn)榘凑张判蝽樞?,重音字符在非重音字符之后。下面列舉的是模式匹配的其它重要規(guī)則:charlist開(kāi)頭的驚嘆號(hào)(!)意味著,如果在string中找到任何不屬于charlist的字符,則存在一個(gè)匹配。如果在方括號(hào)之外使用驚嘆號(hào),則驚嘆號(hào)與自身匹配。連字符(–)可以出現(xiàn)在charlist的開(kāi)頭(如果使用驚嘆號(hào),則在驚嘆號(hào)之后),也可以出現(xiàn)在charlist的結(jié)尾與自身匹配。在任何其它地方,連字符用來(lái)識(shí)別字符的范圍。當(dāng)指定了字符范圍時(shí),這些字符必須按照升序(從最小到最大)順序來(lái)顯示。[A-Z]是有效模式,但[Z-A]不是。字符序列[]被看作是長(zhǎng)度為零的字符串("")。某些語(yǔ)言的字母表中有一些特殊字符,它們表示兩個(gè)分開(kāi)的字符。例如,在一些語(yǔ)言中,當(dāng)字符"a"與"e"同時(shí)出現(xiàn)時(shí),用"_"來(lái)表示字符"a"與"e"。Like運(yùn)算符可以辨認(rèn)出單一的特殊字符和兩個(gè)個(gè)別字符是否相等。當(dāng)一個(gè)語(yǔ)言使用了一個(gè)特殊字符,而且這個(gè)字符在系統(tǒng)地區(qū)設(shè)置中已被指定的時(shí)候,在pattern或string中出現(xiàn)的單一特殊字符將與其他字符串中等價(jià)的兩個(gè)字符相匹配。與此相似,由方括號(hào)括起來(lái)的pattern中的單一特殊字符(字符本身在列表或范圍內(nèi))將與string中等價(jià)的兩個(gè)字符序列匹配。Like運(yùn)算符示例本示例使用Like運(yùn)算符做字符串的方式比較。DimMyCheckMyCheck="aBBBa"Like"a*a"'返回True。MyCheck="F"Like"[A-Z]"'返回True。MyCheck="F"Like"[!A-Z]"'返回False。MyCheck="a2a"Like"a#a"'返回True。MyCheck="aM5b"Like"a[L-P]#[!c-e]"'返回True。MyCheck="BAT123khg"Like"B?T*"'返回True。MyCheck="CAT123khg"Like"B?T*"'返回False。16、Mod運(yùn)算符

用來(lái)對(duì)兩個(gè)數(shù)作除法并且只返回余數(shù)。語(yǔ)法result=number1Modnumber2Mod的語(yǔ)法具有以下幾個(gè)部分:部分描述result必需的;任何數(shù)值變量。number1必需的;任何數(shù)值表達(dá)式。number2必需的;任何數(shù)值表達(dá)式。說(shuō)明在進(jìn)行Mod運(yùn)算或求余數(shù)運(yùn)算時(shí),該運(yùn)算符將number1用number2除(將浮點(diǎn)數(shù)字四舍五入成整數(shù)),并把余數(shù)作為result的值返回。例如,在下列表達(dá)式中,A(result)等于5。A=19Mod6.7一般說(shuō)來(lái),不管result是否為一個(gè)整數(shù),result的數(shù)據(jù)類(lèi)型為Byte,Byte變體、Integer、Integer變體、Long或一個(gè)包含Long的Variant。任何小數(shù)部分都被刪除。但是,如果任何一個(gè)Null,類(lèi)型的表達(dá)式出現(xiàn)時(shí),result都將是Null。任何Empty類(lèi)型表達(dá)式都作為0處理。17、Not運(yùn)算符

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論