




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Vb6.0運算符1、&運算符用來強制兩個表達式作字符串連接。語法result=expression1&expression2&運算符的語法具有以下幾個部分:部分描述result必需的;任何String或Variant變量。expression1必需的;任何表達式。expression2必需的;任何表達式。說明如果expression不是字符串,則將其轉(zhuǎn)換成String變體。如果兩個表達式都是字符串表達式,則result的數(shù)據(jù)類型是String;否則result是String變體。如果兩個表達式都是Null,則result也是Null。但是,只要有一個expression是Null,那么在與其它表達式連接時,都將其作為長度為零的字符串("")處理。任何Empty類型表達式也作為長度為零的字符串處理。&運算符示例本示例使用&運算符將字符串串接起來。DimMyStrMyStr="Hello"&"World"'返回"HelloWorld"。MyStr="Check"&123&"Check"'返回"Check123Check"。2、*運算符
用來將兩數(shù)相乘。語法result=number1*number2*運算符的語法具有以下幾個部分:部分描述result必需的;任何數(shù)值變量。number1必需的;任何數(shù)值表達式。number2必需的;任何數(shù)值表達式。說明result的數(shù)據(jù)類型通常與最精確的表達式的數(shù)據(jù)類型相同。精確度由最低到最高的順序是Byte、Integer、Long、Single、Currency、Double和Decimal。下列情況是例外:如果則result為乘法運算有一個Single和一個Long,轉(zhuǎn)換成Double。result的數(shù)據(jù)類型是Long、Single或Date變體,且超出正確范圍,轉(zhuǎn)換成有Double的Variant。result的數(shù)據(jù)類型是Byte變體,且超出正確范圍,轉(zhuǎn)換成Integer變體。result的數(shù)據(jù)類型是Integer變體,且超出正確范圍,轉(zhuǎn)換成Long變體。如果有一個或兩個表達式是Null表達式,則result為Null。如果一個表達式是Empty,則作為0處理。注意乘法用到的精確度等級與加法和減法用到的精確度等級不一樣。*運算符示例本示例使用*運算符來計算兩數(shù)的乘積。DimMyValueMyValue=2*2'返回4。MyValue=459.35*334.90'返回153836.315。3、+運算符
用來求兩數(shù)之和。語法result=expression1+expression2+運算符的語法具有以下幾個部分:部分描述result必需的;任何數(shù)值變量。expression1必需的;任何表達式。expression2必需的;任何表達式。說明在使用+運算符時有可能無法確定是做加法還是做字符串連接。為避免混淆,請使用&運算符進行連接,并且改進程序代碼的可讀性。如果至少有一個表達式不是Variant,則可運用以下法則:如果則兩個表達式都是數(shù)值數(shù)據(jù)類型(Byte、Boolean、Integer、Long、Single、Double、Date、Currency或是Decimal)相加。兩個表達式都是String連接。一個表達式是數(shù)值數(shù)據(jù)類型而另一個是Null之外的任意Variant。相加。一個表達式是String而其它是Null之外的任意Variant。連接。一個表達式是EmptyVariant返回另一個不變的表達式作為result。一個表達式是數(shù)值數(shù)據(jù)類型,而另一個是String產(chǎn)生一個類型不匹配錯誤。每個表達式都是Nullresult是Null。如果兩個表達式都是Variant表達式,則可運用下列規(guī)則:如果則兩個Variant表達式都是數(shù)值相加。兩個Variant表達式都是字符串連接。一個Variant表達式是數(shù)值而另一個是字符串相加。對于只有數(shù)值數(shù)據(jù)類型表達式的單純加法,result的數(shù)據(jù)類型通常與其中最精確的表達式的數(shù)據(jù)類型相同。精確度由最低到最高的順序是Byte、Integer、Long、Single、Double、Currency和Decimal。但下列情況例外:如果則result為一個Single和一個Long相加,一個Double。result的數(shù)據(jù)類型是Long、Single或Date變體,且越出正確范圍,轉(zhuǎn)換成Double變體。result的數(shù)據(jù)類型是Byte變體,且超過本身的正確范圍時,轉(zhuǎn)換成Integer變體。result的數(shù)據(jù)類型是Integer變體,且超過本身的正確范圍時,轉(zhuǎn)換成Long變體。將一個Date加到任何數(shù)據(jù)類型上,一個Date。如果有一個或兩個表達式是Null表達式,則result為Null。如果兩個表達式都是Empty,則result是Integer。但是,如果只有一個表達式是Empty,則另一個表達式原封不動地作為result返回。注意加法和減法用到的精確度等級與乘法用到的精確度等級不一樣。+運算符示例本示例使用+運算符來計算數(shù)值的和。+運算符也可以用來做字符串的串接操作。不過,最好還是使用&運算符來做字符串的串接操作。如果+運算符兩邊的表達式中混著字符串及數(shù)值的話,其結(jié)果會是數(shù)值的求和。如果都是字符串作“相加”,則返回串接起來的字符串。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"(字符串被串接起來)。4、–運算符
用來求兩數(shù)之差或表示數(shù)值表達式的負值。語法1result=number1-number2語法2-number–運算符的語法具有以下幾個部分:部分描述result必需的;任何數(shù)值變量。number必需的;任何數(shù)值表達式。number1必需的;任何數(shù)值表達式。number2必需的;任何數(shù)值表達式。說明在語法1中,–運算符是求兩數(shù)之差的算術(shù)減法運算符。在語法2中,–運算符為一元負運算符,說明表達式的值為負值。result的數(shù)據(jù)類型通常與最精確的表達式的數(shù)據(jù)類型相同。精確度由最低到最高的順序是Byte、Integer、Long、Single、Double、Currency和Decimal。下列情況例外:如果則result為當減法運算中有一個Single和一個Long,轉(zhuǎn)換成一個Double。result的數(shù)據(jù)類型是一個Long、Single或Date變體,且超出正確范圍,轉(zhuǎn)換成包含Double的Variant。result的數(shù)據(jù)類型是一個Byte變體,且超出正確范圍,轉(zhuǎn)換成一個Integer變體。result的數(shù)據(jù)類型是一個Integer變體,且超出正確范圍,轉(zhuǎn)換成一個Long變體。減法運算中有Date和其它任何數(shù)據(jù)類型,一個Date。減法運算中有兩個Date表達式,一個Double。如果有一個或兩個表達式是Null表達式,則result為Null。如果一個表達式是Empty,則作為0處理。注意加法和減法用到的精確度等級與乘法用到的精確度等級不一樣。-運算符示例本示例使用-運算符來計算兩數(shù)值的差。DimMyResultMyResult=4-2'返回2。MyResult=459.35-334.90'返回124.45。5、/運算符
用來進行兩個數(shù)的除法運算并返回一個浮點數(shù)。語法result=number1/number2/運算符的語法具有以下幾個部分:部分描述result必需的;任何數(shù)值變量。number1必需的;任何數(shù)值表達式。number2必需的;任何數(shù)值表達式。說明result的數(shù)據(jù)類型通常是Double或Double變體。下列情況是例外:如果則result為兩個表達式都是Byte、Integer或Single表達式時,一個Single,除非超出正確范圍;如果發(fā)生這種情況,則產(chǎn)生錯誤。兩個表達式都是Byte、Integer或Single變體,一個Single變體,除非已超出正確范圍;一旦發(fā)生這種情況,result是一個包含Double的Variant。除法運算中有一個Decimal及其它任何數(shù)據(jù)類型,一個Decimal數(shù)據(jù)類型。如果有一個或是兩個表達式是Null表達式,則result為Null。如果一個表達式是Empty則作為0處理。/運算符示例本示例使用/運算符來計算浮點數(shù)除法。DimMyValueMyValue=10/4'返回2.5。MyValue=10/3'返回3.333333。6、\運算符
用來對兩個數(shù)作除法并返回一個整數(shù)。語法result=number1\number2\運算符的語法具有以下幾個部分:部分描述result必需的;任何數(shù)值變量。number1必需的;任何數(shù)值表達式。number2必需的;任何數(shù)值表達式。說明在進行除法運算之前,數(shù)值表達式通過舍去小數(shù)部分轉(zhuǎn)換成Byte、Integer或Long表達式。通常,無論result是不是整數(shù),result的數(shù)據(jù)類型都是Byte、Byte變體、Integer、Integer變體、Long或Long變體。任何小數(shù)部分都被刪除。但是,如果任何一個表達式是Null,則result為Null。如果一個表達式是Empty,則作為0處理。\運算符示例本示例使用\運算符來計算整型除法。DimMyValueMyValue=11\4'返回2。MyValue=9\3'返回3。MyValue=100\3'返回33。7、^運算符
用來求一個數(shù)字的某次方,次方數(shù)為exponent值。語法result=number^exponent^運算符的語法具有以下幾個部分:部分描述result必需的;任何數(shù)值變量。number必需的;任何數(shù)值表達式。exponent必需的;任何數(shù)值表達式。說明只有當exponent為整數(shù)值時,number才可以為負數(shù)。在表達式中執(zhí)行多個指數(shù)運算時,^運算符的計算順序從左到右。result的數(shù)據(jù)類型通常是Double或包含Double的Variant。但是,如果number或exponent中有一個是Null表達式,則result也是Null。^運算符示例本示例使用^運算符來表示某數(shù)的乘方的指數(shù)值。DimMyValueMyValue=2^2'返回4。MyValue=3^3^3'返回19683。MyValue=(-5)^3'返回-125。8、=操作符
描述用于對一個變量或?qū)傩再x值。語法variable=value=操作符語法有如下幾部分:部分描述variable任何變量或任何可寫的屬性。value任何數(shù)值型或字符串文字、常數(shù)或表達式。說明等號左邊的名字可以是一個簡單的標量變量或一個數(shù)組的元素。等號左邊的屬性只能是運行時可寫的屬性。9、AddressOf運算符
一個一元運算符,它將其后面的過程的地址傳遞給一個API過程,該API過程在參數(shù)表對應(yīng)位置中需要一個函數(shù)指針。語法AddressOfprocedurename必需的procedurename指定要傳遞的地址是哪一個過程的地址。這個過程必須是發(fā)出調(diào)用命令的工程中的一個標準模塊模塊里的一個過程。說明當一個過程的名稱出現(xiàn)在一個參數(shù)列表中時,通常該過程已經(jīng)被計算,并且該過程返回值的地址也會被傳遞。AddressOf允許該過程的地址被傳遞給動態(tài)鏈接庫(DLL)中的一個WindowsAPI函數(shù),而不是傳遞該過程的返回值。API函數(shù)然后就可以使用這個地址來調(diào)用相應(yīng)的Basic過程,這個過程就是我們所知道的回調(diào)。AddressOf運算符只出現(xiàn)在對API過程的調(diào)用中。盡管可以使用AddressOf運算符在Basic過程之間傳遞過程指針,卻不能通過這樣的一個指針從Basic內(nèi)部調(diào)用一個函數(shù)。這就是說,例如,一個使用Basic編寫的類不能使用這樣的一個指針來回調(diào)自己的控制器。當使用AddressOf運算符在Basic內(nèi)的過程之間傳遞一個過程的指針時,被調(diào)用過程的參數(shù)類型必須定義為AsLong。警告如果不能完全理解函數(shù)回調(diào)的概念,則使用AddressOf運算符可能會導(dǎo)致意想不到的結(jié)果。必須理解回調(diào)的Basic部份是如何工作的,以及接受所傳遞的函數(shù)地址的DLL的代碼是如何工作的。調(diào)試這樣的交互操作是非常困難的,因為該程序和開發(fā)環(huán)境運行在相同的進程中。在某些情況下,系統(tǒng)的調(diào)試也許是不可能的。注意可以使用MicrosoftVisualC++(或者類似的工具)編譯的DLLs來創(chuàng)建自己的回調(diào)函數(shù)原型。要使用AddressOf運算符來工作,您的原型必需使用__stdcall調(diào)用約定。缺省的調(diào)用約定(__cdecl)不能與AddressOf運算符一起工作。因為一個回調(diào)的調(diào)用程序不在用戶自己的程序中,所以很重要的一點是要保證回調(diào)過程中的錯誤不被回傳到調(diào)用者??梢酝ㄟ^把OnErrorResumeNext語句放置于回調(diào)過程的起始處來達到這個要求。AddressOf運算符示例下面的示例創(chuàng)建一個帶有一個列表框的窗體,該列表框包含您的系統(tǒng)中的字體的按字母順序排序的列表。要運行該示例,請創(chuàng)建一個帶有一個列表框的窗體。窗體部分的代碼如下:OptionExplicitPrivateSubForm_Load()Module1.FillListWithFontsList1EndSub把下面的代碼放置到一個模塊中。EnumFontFamilies函數(shù)定義中的第三個參數(shù)是一個長整形,它代表一個過程。該參數(shù)必須包含這個過程的地址,而不是這個過程的返回值。在對EnumFontFamilies的調(diào)用中,第三個參數(shù)需要AddressOf運算符來返回EnumFontFamProc過程的地址,該過程是當調(diào)用WindowsAPI函數(shù),即EnumFontFamilies時提供的回調(diào)過程的名稱。當把AddressOfEnumFontFamProc傳遞給EnumFontFamilies時,Windows就會為系統(tǒng)中的每一個字體庫調(diào)用一次EnumFontFamProc。傳遞給EnumFontFamilies的最后一個參數(shù)指定用來顯示信息的列表框。'字體枚舉類型PublicConstLF_FACESIZE=32PublicConstLF_FULLFACESIZE=64TypeLOGFONTlfHeightAsLonglfWidthAsLonglfEscapementAsLonglfOrientationAsLonglfWeightAsLonglfItalicAsBytelfUnderlineAsBytelfStrikeOutAsBytelfCharSetAsBytelfOutPrecisionAsBytelfClipPrecisionAsBytelfQualityAsBytelfPitchAndFamilyAsBytelfFaceName(LF_FACESIZE)AsByteEndTypeTypeNEWTEXTMETRICtmHeightAsLongtmAscentAsLongtmDescentAsLongtmInternalLeadingAsLongtmExternalLeadingAsLongtmAveCharWidthAsLongtmMaxCharWidthAsLongtmWeightAsLongtmOverhangAsLongtmDigitizedAspectXAsLongtmDigitizedAspectYAsLongtmFirstCharAsBytetmLastCharAsBytetmDefaultCharAsBytetmBreakCharAsBytetmItalicAsBytetmUnderlinedAsBytetmStruckOutAsBytetmPitchAndFamilyAsBytetmCharSetAsBytentmFlagsAsLongntmSizeEMAsLongntmCellHeightAsLongntmAveWidthAsLongEndType'ntmFlags段標志PublicConstNTM_REGULAR=&H40&PublicConstNTM_BOLD=&H20&PublicConstNTM_ITALIC=&H1&'tmPitchAndFamily標志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運算符
用來對兩個表達式進行邏輯連接。語法result=expression1Andexpression2And運算符的語法具有以下幾個部分:部分描述result必需的;任何數(shù)值變量。expression1必需的;任何表達式。expression2必需的;任何表達式。說明如果兩個表達式的值都是True,則result是True。如果其中一個表達式的值是False,則result是False。下列表格說明如何確定result:如果expression1為且expression2為則result為TrueTrueTrueTrueFalseFalseTrueNullNullFalseTrueFalseFalseFalseFalseFalseNullFalseNullTrueNullNullFalseFalseNullNullNullAnd運算符還對兩個數(shù)值表達式中位置相同的位進行逐位比較,并根據(jù)下表對result中相應(yīng)的位進行設(shè)置:如果在expression1的位為且在expression2中的位為result為000010100111And運算符示例本示例使用And運算符來做兩個表達式結(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、比較運算符
用來比較表達式。語法result=expression1comparisonoperatorexpression2result=object1Isobject2result=stringLikepattern比較運算符具有以下幾個部分:部分描述result必需的;任何數(shù)值變量。expression必需的;任何表達式。comparisonoperator必需的;任何比較運算符。object必需的;任何對象名稱。string必需的;任何字符串表達式。pattern必需的;任何字符串表達式或字符的范圍。說明下列表格中有一系列比較運算符以及判定result是True、False還是Null的條件:運算符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運算符有特定的比較功能,它們不同於表格中的運算符。在比較兩個表達式的時候可能難以確定將要比較的表達式是數(shù)字還是字符串。下列表格將說明如何比較表達式,或說明當其中一個表達式不是Variant時,如何獲得比較的結(jié)果。如果則兩個表達式都是數(shù)值數(shù)據(jù)類型(Byte、Boolean、Integer、Long、Single、Double、Date、Currency或Decimal)進行數(shù)值比較。兩個表達式都是String進行字符串比較一個表達式是數(shù)值數(shù)據(jù)類型而另一個是數(shù)字Variant、或可以為一數(shù)字進行數(shù)值比較。一個表達式是數(shù)值數(shù)據(jù)類型而另一個是不能轉(zhuǎn)換成數(shù)字的字符串Variant產(chǎn)生類型不匹配的錯誤。一個表達式是String,而另一個是除了Null以外的任何Variant進行字符串比較。一個表達式是Empty而另一個是數(shù)值數(shù)據(jù)類型進行數(shù)值比較,使用0作為Empty表達式。一個表達式是Empty而另一個是String進行字符串比較,使用長度為零的字符串("")作為Empty表達式。如果expression1和expression2都是Variant表達式,則它們的基本類型決定了比較方式。下列表格說明如何比較表達式,或指出通過比較得到的結(jié)果,此結(jié)果取決于Variant的基本類型:如果則兩個Variant表達式都是數(shù)值進行數(shù)值比較。兩個Variant表達式都是字符串進行字符串比較。一個Variant表達式是數(shù)值而另一個是字符串數(shù)值表達式小于字符串表達式。一個Variant表達式是Empty而另一個是數(shù)值進行數(shù)值比較,使用0作為Empty表達式。一個Variant表達式是Empty而另一個是字符串進行字符串比較,使用長度為零的字符串("")作為Empty表達式。兩個Variant表達式都是Empty表達式相等。當一個Single與一個Double作比較時,Double會進行舍入處理而與此Single有相同的精確度。如果一個Currency與一個Single或Double進行比較,則Single或Double轉(zhuǎn)換成一個Currency。與此相似,當一個Decimal要與一個Single或Double進行比較時,Single或Double會轉(zhuǎn)換成一個Decimal。對于Currency,任何小于.0001的小數(shù)將被舍棄,對于Decimal,任何小于1E-28的小數(shù)將被舍棄,或者可能產(chǎn)生溢出錯誤。舍棄這樣的小數(shù)部分會使原來不相等的兩個數(shù)值經(jīng)過比較后相等。比較運算符示例本示例示范各種“比較運算符”的用法。這類運算符通常拿來做表達式結(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運算符
用來對兩個表達式進行邏輯等價運算。語法result=expression1Eqvexpression2Eqv運算符的語法具有以下幾個部分:部分描述result必需的;任何數(shù)值變量。expression1必需的;任何表達式。expression2必需的;任何表達式。說明如果有一個表達式是Null,則result也是Null。如果表達式都不是Null,則根據(jù)下表來確定result:如果expression1為且expression2為則result為TrueTrueTrueTrueFalseFalseFalseTrueFalseFalseFalseTrueEqv運算符對兩個數(shù)值表達式中位置相同的位進行逐位比較,并根據(jù)下表對result中相應(yīng)的位進行設(shè)置:如果在expression1的位為且在expression2中的位為result為001010100111Eqv運算符示例本示例使用Eqv運算符來做兩個表達式結(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運算符
用來對兩個表達式進行邏輯蘊涵運算。語法result=expression1Impexpression2Imp運算符的語法具有以下幾個部分:部分描述result必需的;任何數(shù)值變量。expression1必需的;任何表達式。expression2必需的;任何表達式。說明下列表格說明如何確定result:如果expression1為且expression2為則result為TrueTrueTrueTrueFalseFalseTrueNullNullFalseTrueTrueFalseFalseTrueFalseNullTrueNullTrueTrueNullFalseNullNullNullNullImp運算符對兩個數(shù)值表達式中位置相同的位進行逐位比較,并根據(jù)下表對result中相應(yīng)的位進行設(shè)置:如果在expression1的位為且在expression2中的位為result為001011100111Imp運算符示例本示例使用Imp運算符來做兩個表達式結(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運算符
用來比較兩個對象的引用變量。語法result=object1Isobject2Is運算符的語法具有以下幾個部分:部分描述result必需的;任何數(shù)值變量。object1必需的;任何對象名稱。object2必需的;任何對象名稱。說明如果object1和object2兩者引用相同的對象,則result為True;否則,result為False。有很多方法使兩個變量引用相同的對象。在以下示例中,A和B已被設(shè)置成與C引用相同的對象:SetA=B在下例中,A和B引用的對象與C相同:SetA=CSetB=CIs運算符示例本示例使用Is運算符來比較兩個對象引用。示例中的對象變量名只是作說明用途的一般性名稱而已。DimMyObject,YourObject,ThisObject,OtherObject,ThatObject,MyCheckSetYourObject=MyObject'指定對象引用。SetThisObject=MyObjectSetThatObject=OtherObjectMyCheck=YourObjectIsThisObject'返回True。MyCheck=ThatObjectIsThisObject'返回False。'假設(shè)MyObject<>OtherObjectMyCheck=MyObjectIsThatObject'返回False。15、Like運算符
用來比較兩個字符串。語法result=stringLikepatternLike運算符的語法具有以下幾個部分:部分描述result必需的;任何數(shù)值變量。string必需的;任何字符串表達式。pattern必需的;任何字符串表達式,遵循“說明”中的模式匹配約定。說明如果string與pattern匹配,則result為True;如果不匹配,則result為False。但是如果string或pattern中有一個為Null,則result為Null。Like運算符的特性隨著OptionCompare語句而不同。每個模塊的缺省字符串比較方法是OptionCompareBinary。在字符串比較中,OptionCompareBinary的結(jié)果是根據(jù)字符的內(nèi)部二進制表示法導(dǎo)出的排序順序得到的。在MicrosoftWindows中,排序順序由代碼頁決定。下例說明通常二進制的排序順序:A<B<E<Z<a<b<e<z<_<_<_<_<_<?在字符串比較中,OptionCompareText的結(jié)果是字符串比較,它建立在不區(qū)分大小寫的文本排序順序基礎(chǔ)上,而這一排序順序是由系統(tǒng)的國別確定的。在對相同的字符使用OptionCompareText時會產(chǎn)生以下文本排序順序:(A=a)<(_=_)<(B=b)<(E=e)<(_=_)<(Z=z)<(_=_)內(nèi)建的模式匹配功能提供了多種工具來進行字符串比較。有了模式匹配功能就可以使用通配符、字符串列表或字符區(qū)間的任何組合來匹配字符串。下列表格指出pattern中允許的字符以及它們與什么進行匹配:pattern中的字符符合string中的?任何單一字符。*零個或多個字符。#任何一個數(shù)字(0–9)。[charlist]charlist.中的任何單一字符。[!charlist]不在charlist中的任何單一字符。在中括號([])中,可以用由一個或多個字符(charlist)組成的組與string中的任一字符進行匹配,這個組幾乎包括任何一個字符代碼以及數(shù)字。注意為了與左括號([)、問號(?)、數(shù)字符號(#)和星號(*)等特殊字符進行匹配,可以將它們用方括號括起來。不能在一個組內(nèi)使用右括號(])與自身匹配,但在組外可以作為個別字符使用。通過在范圍的上、下限之間用連字符(–),charlist可以指定字符的范圍。例如,如果string中相應(yīng)字符的位置包括A–Z之間的任意大寫字母,則[A-Z]得到一個匹配。不需要分界符,方括號內(nèi)就可以包括多個范圍。指定范圍的意義取決于運行時的有效字符排序(正如OptionCompare和系統(tǒng)的國別設(shè)置所確定的,代碼在運行之中)。使用OptionCompareBinary示例可以看到,范圍[A–E]與A、B和E相匹配。通過OptionCompareText可以看到,[A–E]與A,a,_,_,B,b,E,e相匹配。此范圍與_或_不匹配,因為按照排序順序,重音字符在非重音字符之后。下面列舉的是模式匹配的其它重要規(guī)則:charlist開頭的驚嘆號(!)意味著,如果在string中找到任何不屬于charlist的字符,則存在一個匹配。如果在方括號之外使用驚嘆號,則驚嘆號與自身匹配。連字符(–)可以出現(xiàn)在charlist的開頭(如果使用驚嘆號,則在驚嘆號之后),也可以出現(xiàn)在charlist的結(jié)尾與自身匹配。在任何其它地方,連字符用來識別字符的范圍。當指定了字符范圍時,這些字符必須按照升序(從最小到最大)順序來顯示。[A-Z]是有效模式,但[Z-A]不是。字符序列[]被看作是長度為零的字符串("")。某些語言的字母表中有一些特殊字符,它們表示兩個分開的字符。例如,在一些語言中,當字符"a"與"e"同時出現(xiàn)時,用"_"來表示字符"a"與"e"。Like運算符可以辨認出單一的特殊字符和兩個個別字符是否相等。當一個語言使用了一個特殊字符,而且這個字符在系統(tǒng)地區(qū)設(shè)置中已被指定的時候,在pattern或string中出現(xiàn)的單一特殊字符將與其他字符串中等價的兩個字符相匹配。與此相似,由方括號括起來的pattern中的單一特殊字符(字符本身在列表或范圍內(nèi))將與string中等價的兩個字符序列匹配。Like運算符示例本示例使用Like運算符做字符串的方式比較。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運算符
用來對兩個數(shù)作除法并且只返回余數(shù)。語法result=number1Modnumber2Mod的語法具有以下幾個部分:部分描述result必需的;任何數(shù)值變量。number1必需的;任何數(shù)值表達式。number2必需的;任何數(shù)值表達式。說明在進行Mod運算或求余數(shù)運算時,該運算符將number1用number2除(將浮點數(shù)字四舍五入成整數(shù)),并把余數(shù)作為result的值返回。例如,在下列表達式中,A(result)等于5。A=19Mod6.7一般說來,不管result是否為一個整數(shù),result的數(shù)據(jù)類型為Byte,Byte變體、Integer、Integer變體、Long或一個包含Long的Variant。任何小數(shù)部分都被刪除。但是,如果任何一個Null,類型的表達式出現(xiàn)時,result都將是Null。任何Empty類型表達式都作為0處理。17、Not運算符
用
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人力資源咨詢顧問合同書
- 產(chǎn)品售后服務(wù)情況說明表
- 制造業(yè)企業(yè)知識產(chǎn)權(quán)保護策略研究
- 光纜遷移施工方案范本
- 橡膠跑道施工方案
- 涼山道路施工方案
- TCSMT YB011-2024 天然氣發(fā)熱量測量裝置測試技術(shù)規(guī)范
- 建筑工程人工費承包合同-@-1
- 物業(yè)地面處理方案
- 透水砼路面施工方案
- 2024人工智能開源大模型生態(tài)體系研究報告
- Maximo7.5功能介紹和升級原因
- 2024-2030年中國螯合劑類行業(yè)發(fā)展形勢與前景規(guī)劃分析研究報告
- 四年級語文國測模擬試題 (1)附有答案
- 內(nèi)部設(shè)施零星維修服務(wù) 投標方案(技術(shù)方案)
- 2024年北京政法職業(yè)學(xué)院高職單招筆試歷年職業(yè)技能測驗典型例題與考點解析含答案
- DL∕ T 949-2005 水工建筑物塑性嵌縫密封材料技術(shù)標準
- 高考數(shù)學(xué)專項練習(xí)極值點偏移問題
- 輸變電工程施工質(zhì)量驗收統(tǒng)一表式附件1:線路工程填寫示例
- 《金融科技學(xué)》教案 及 習(xí)題答案 (李建軍 版)
- 基金應(yīng)知應(yīng)會專項考試題庫(證券類190題)附有答案
評論
0/150
提交評論