vb60运算符大全.docx
- 文档编号:24778219
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:33
- 大小:110.93KB
vb60运算符大全.docx
《vb60运算符大全.docx》由会员分享,可在线阅读,更多相关《vb60运算符大全.docx(33页珍藏版)》请在冰豆网上搜索。
vb60运算符大全
vb6.0运算符大全
Vb6.0运算符
1、&运算符
用来强制两个表达式作字符串连接。
语法
result=expression1&expression2
&运算符的语法具有以下几个部分:
部分
描述
result
必需的;任何String或Variant变量。
expression1
必需的;任何表达式。
expression2
必需的;任何表达式。
说明
如果expression不是字符串,则将其转换成String变体。
如果两个表达式都是字符串表达式,则result的数据类型是String;否则result是String变体。
如果两个表达式都是Null,则result也是Null。
但是,只要有一个expression是Null,那么在与其它表达式连接时,都将其作为长度为零的字符串("")处理。
任何Empty类型表达式也作为长度为零的字符串处理。
&运算符示例
本示例使用&运算符将字符串串接起来。
DimMyStr
MyStr="Hello"&"World"'返回"HelloWorld"。
MyStr="Check"&123&"Check"'返回"Check123Check"。
如果有一个或两个表达式是Null表达式,则result为Null。
如果两个表达式都是Empty,则result是Integer。
但是,如果只有一个表达式是Empty,则另一个表达式原封不动地作为result返回。
注意加法和减法用到的精确度等级与乘法用到的精确度等级不一样。
+运算符示例
本示例使用+运算符来计算数值的和。
+运算符也可以用来做字符串的串接操作。
不过,最好还是使用&运算符来做字符串的串接操作。
如果+运算符两边的表达式中混着字符串及数值的话,其结果会是数值的求和。
如果都是字符串作“相加”,则返回串接起来的字符串。
DimMyNumber,Var1,Var2
MyNumber=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、–运算符
用来求两数之差或表示数值表达式的负值。
语法1
result=number1-number2
语法2
-number
–运算符的语法具有以下几个部分:
部分
描述
result
必需的;任何数值变量。
number
必需的;任何数值表达式。
number1
必需的;任何数值表达式。
number2
必需的;任何数值表达式。
说明
在语法1中,–运算符是求两数之差的算术减法运算符。
在语法2中,–运算符为一元负运算符,说明表达式的值为负值。
result的数据类型通常与最精确的表达式的数据类型相同。
精确度由最低到最高的顺序是Byte、Integer、Long、Single、Double、Currency和Decimal。
下列情况例外:
如果
则result为
当减法运算中有一个Single和一个Long,
转换成一个Double。
result的数据类型是一个Long、Single或Date变体,且超出正确范围,
转换成包含Double的Variant。
result的数据类型是一个Byte变体,且超出正确范围,
转换成一个Integer变体。
result的数据类型是一个Integer变体,且超出正确范围,
转换成一个Long变体。
减法运算中有Date和其它任何数据类型,
一个Date。
减法运算中有两个Date表达式,
一个Double。
如果有一个或两个表达式是Null表达式,则result为Null。
如果一个表达式是Empty,则作为0处理。
注意加法和减法用到的精确度等级与乘法用到的精确度等级不一样。
-运算符示例
本示例使用-运算符来计算两数值的差。
DimMyResult
MyResult=4-2'返回2。
MyResult=459.35-334.90'返回124.45。
5、/运算符
用来进行两个数的除法运算并返回一个浮点数。
语法
result=number1/number2
/运算符的语法具有以下几个部分:
部分
描述
result
必需的;任何数值变量。
number1
必需的;任何数值表达式。
number2
必需的;任何数值表达式。
说明
result的数据类型通常是Double或Double变体。
下列情况是例外:
如果
则result为
两个表达式都是Byte、Integer或Single表达式时,
一个Single,除非超出正确范围;如果发生这种情况,则产生错误。
两个表达式都是Byte、Integer或Single变体,
一个Single变体,除非已超出正确范围;一旦发生这种情况,result是一个包含Double的Variant。
除法运算中有一个Decimal及其它任何数据类型,
一个Decimal数据类型。
如果有一个或是两个表达式是Null表达式,则result为Null。
如果一个表达式是Empty则作为0处理。
/运算符示例
本示例使用/运算符来计算浮点数除法。
DimMyValue
MyValue=10/4'返回2.5。
MyValue=10/3'返回3.333333。
6、\运算符
用来对两个数作除法并返回一个整数。
语法
result=number1\number2
\运算符的语法具有以下几个部分:
部分
描述
result
必需的;任何数值变量。
number1
必需的;任何数值表达式。
number2
必需的;任何数值表达式。
说明
在进行除法运算之前,数值表达式通过舍去小数部分转换成Byte、Integer或Long表达式。
通常,无论result是不是整数,result的数据类型都是Byte、Byte变体、Integer、Integer变体、Long或Long变体。
任何小数部分都被删除。
但是,如果任何一个表达式是Null,则result为Null。
如果一个表达式是Empty,则作为0处理。
\运算符示例
本示例使用\运算符来计算整型除法。
DimMyValue
MyValue=11\4'返回2。
MyValue=9\3'返回3。
MyValue=100\3'返回33。
7、^运算符
用来求一个数字的某次方,次方数为exponent值。
语法
result=number^exponent
^运算符的语法具有以下几个部分:
部分
描述
result
必需的;任何数值变量。
number
必需的;任何数值表达式。
exponent
必需的;任何数值表达式。
说明
只有当exponent为整数值时,number才可以为负数。
在表达式中执行多个指数运算时,^运算符的计算顺序从左到右。
result的数据类型通常是Double或包含Double的Variant。
但是,如果number或exponent中有一个是Null表达式,则result也是Null。
^运算符示例
本示例使用^运算符来表示某数的乘方的指数值。
DimMyValue
MyValue=2^2'返回4。
MyValue=3^3^3'返回19683。
MyValue=(-5)^3'返回-125。
8、=操作符
描述
用于对一个变量或属性赋值。
语法
variable=value
=操作符语法有如下几部分:
部分
描述
variable
任何变量或任何可写的属性。
value
任何数值型或字符串文字、常数或表达式。
说明
等号左边的名字可以是一个简单的标量变量或一个数组的元素。
等号左边的属性只能是运行时可写的属性。
9、AddressOf运算符
一个一元运算符,它将其后面的过程的地址传递给一个API过程,该API过程在参数表对应位置中需要一个函数指针。
语法
AddressOfprocedurename
必需的procedurename指定要传递的地址是哪一个过程的地址。
这个过程必须是发出调用命令的工程中的一个标准模块模块里的一个过程。
说明
当一个过程的名称出现在一个参数列表中时,通常该过程已经被计算,并且该过程返回值的地址也会被传递。
AddressOf允许该过程的地址被传递给动态链接库(DLL)中的一个WindowsAPI函数,而不是传递该过程的返回值。
API函数然后就可以使用这个地址来调用相应的Basic过程,这个过程就是我们所知道的回调。
AddressOf运算符只出现在对API过程的调用中。
尽管可以使用AddressOf运算符在Basic过程之间传递过程指针,却不能通过这样的一个指针从Basic内部调用一个函数。
这就是说,例如,一个使用Basic编写的类不能使用这样的一个指针来回调自己的控制器。
当使用AddressOf运算符在Basic内的过程之间传递一个过程的指针时,被调用过程的参数类型必须定义为AsLong。
警告如果不能完全理解函数回调的概念,则使用AddressOf运算符可能会导致意想不到的结果。
必须理解回调的Basic部份是如何工作的,以及接受所传递的函数地址的DLL的代码是如何工作的。
调试这样的交互操作是非常困难的,因为该程序和开发环境运行在相同的进程中。
在某些情况下,系统的调试也许是不可能的。
注意可以使用MicrosoftVisualC++(或者类似的工具)编译的DLLs来创建自己的回调函数原型。
要使用AddressOf运算符来工作,您的原型必需使用__stdcall调用约定。
缺省的调用约定(__cdecl)不能与AddressOf运算符一起工作。
因为一个回调的调用程序不在用户自己的程序中,所以很重要的一点是要保证回调过程中的错误不被回传到调用者。
可以通过把OnErrorResumeNext语句放置于回调过程的起始处来达到这个要求。
AddressOf运算符示例
下面的示例创建一个带有一个列表框的窗体,该列表框包含您的系统中的字体的按字母顺序排序的列表。
要运行该示例,请创建一个带有一个列表框的窗体。
窗体部分的代码如下:
OptionExplicit
PrivateSubForm_Load()
Module1.FillListWithFontsList1
EndSub
把下面的代码放置到一个模块中。
EnumFontFamilies函数定义中的第三个参数是一个长整形,它代表一个过程。
该参数必须包含这个过程的地址,而不是这个过程的返回值。
在对EnumFontFamilies的调用中,第三个参数需要AddressOf运算符来返回EnumFontFamProc过程的地址,该过程是当调用WindowsAPI函数,即EnumFontFamilies时提供的回调过程的名称。
当把AddressOfEnumFontFamProc传递给EnumFontFamilies时,Windows就会为系统中的每一个字体库调用一次EnumFontFamProc。
传递给EnumFontFamilies的最后一个参数指定用来显示信息的列表框。
'字体枚举类型
PublicConstLF_FACESIZE=32
PublicConstLF_FULLFACESIZE=64
TypeLOGFONT
lfHeightAsLong
lfWidthAsLong
lfEscapementAsLong
lfOrientationAsLong
lfWeightAsLong
lfItalicAsByte
lfUnderlineAsByte
lfStrikeOutAsByte
lfCharSetAsByte
lfOutPrecisionAsByte
lfClipPrecisionAsByte
lfQualityAsByte
lfPitchAndFamilyAsByte
lfFaceName(LF_FACESIZE)AsByte
EndType
TypeNEWTEXTMETRIC
tmHeightAsLong
tmAscentAsLong
tmDescentAsLong
tmInternalLeadingAsLong
tmExternalLeadingAsLong
tmAveCharWidthAsLong
tmMaxCharWidthAsLong
tmWeightAsLong
tmOverhangAsLong
tmDigitizedAspectXAsLong
tmDigitizedAspectYAsLong
tmFirstCharAsByte
tmLastCharAsByte
tmDefaultCharAsByte
tmBreakCharAsByte
tmItalicAsByte
tmUnderlinedAsByte
tmStruckOutAsByte
tmPitchAndFamilyAsByte
tmCharSetAsByte
ntmFlagsAsLong
ntmSizeEMAsLong
ntmCellHeightAsLong
ntmAveWidthAsLong
EndType
'ntmFlags段标志
PublicConstNTM_REGULAR=&H40&
PublicConstNTM_BOLD=&H20&
PublicConstNTM_ITALIC=&H1&
'tmPitchAndFamily标志
PublicConstTMPF_FIXED_PITCH=&H1
PublicConstTMPF_VECTOR=&H2
PublicConstTMPF_DEVICE=&H8
PublicConstTMPF_TRUETYPE=&H4
PublicConstELF_VERSION=0
PublicConstELF_CULTURE_LATIN=0
'EnumFonts掩码
PublicConstRASTER_FONTTYPE=&H1
PublicConstDEVICE_FONTTYPE=&H2
PublicConstTRUETYPE_FONTTYPE=&H4
DeclareFunctionEnumFontFamiliesLib"gdi32"Alias_
"EnumFontFamiliesA"_
(ByValhDCAsLong,ByVallpszFamilyAsString,_
ByVallpEnumFontFamProcAsLong,LParamAsAny)AsLong
DeclareFunctionGetDCLib"user32"(ByValhWndAsLong)AsLong
DeclareFunctionReleaseDCLib"user32"(ByValhWndAsLong,_
ByValhDCAsLong)AsLong
FunctionEnumFontFamProc(lpNLFAsLOGFONT,lpNTMAsNEWTEXTMETRIC,_
ByValFontTypeAsLong,LParamAsListBox)AsLong
DimFaceNameAsString
DimFullNameAsString
FaceName=StrConv(lpNLF.lfFaceName,vbUnicode)
LParam.AddItemLeft$(FaceName,InStr(FaceName,vbNullChar)-1)
EnumFontFamProc=1
EndFunction
SubFillListWithFonts(LBAsListBox)
DimhDCAsLong
LB.Clear
hDC=GetDC(LB.hWnd)
EnumFontFamilieshDC,vbNullString,AddressOfEnumFontFamProc,LB
ReleaseDCLB.hWnd,hDC
EndSub
10、And运算符
用来对两个表达式进行逻辑连接。
语法
result=expression1Andexpression2
And运算符的语法具有以下几个部分:
部分
描述
result
必需的;任何数值变量。
expression1
必需的;任何表达式。
expression2
必需的;任何表达式。
说明
如果两个表达式的值都是True,则result是True。
如果其中一个表达式的值是False,则result是False。
下列表格说明如何确定result:
如果expression1为
且expression2为
则result为
True
True
True
True
False
False
True
Null
Null
False
True
False
False
False
False
False
Null
False
Null
True
Null
Null
False
False
Null
Null
Null
And运算符还对两个数值表达式中位置相同的位进行逐位比较,并根据下表对result中相应的位进行设置:
如果在expression1的位为
且在expression2中的位为
result为
0
0
0
0
1
0
1
0
0
1
1
1
And运算符示例
本示例使用And运算符来做两个表达式结果的逻辑合取(alogicalconjunction)。
DimA,B,C,D,MyCheck
A=10:
B=8:
C=6:
D=Null'设置变量初值。
MyCheck=A>BAndB>C'返回True。
MyCheck=B>AAndB>C'返回False。
MyCheck=A>BAndB>D'返回Null。
MyCheck=AAndB'返回8(位比较的结果)。
11、比较运算符
用来比较表达式。
语法
result=expression1comparisonoperatorexpression2
result=object1Isobject2
result=stringLikepattern
比较运算符具有以下几个部分:
部分
描述
result
必需的;任何数值变量。
expression
必需的;任何表达式。
comparisonoperator
必需的;任何比较运算符。
object
必需的;任何对象名称。
string
必需的;任何字符串表达式。
pattern
必需的;任何字符串表达式或字符的范围。
说明
下列表格中有一系列比较运算符以及判定result是True、False还是Null的条件:
运算符
Trueif
Falseif
Nullif
<(小于)
expression1 expression1>=expression2 expression1orexpression2=Null <=(小于或等于) expression1<=expression2 expression1>expression2 expression1orexpression2=Null >(大于) expression1>expression2 expression1<=expression2 expression1orexpression2=Null >=(大于或等于) expression1>=expression2 expression1 expression1orexpression2=Null =(等于) expression1=expression2 expression1<>expression2 expression1orexpression2=Null <>(不等于) expression1<>expression2 expression1=expression2 expression1orexpression2=Null 注意Is和Like运算符有特定的比较功能,它们不同於表格中的运算符。 在比较两个表达式的时候可能难以确定将要比较的表达式是数字还是字符串。 下列表格将说明如何比较表达式,或说明当其中一个表达式不是Variant时,如何获得比较的结果。 如果 则 两个表达式都是数值数据类型(Byte、Boolean、Integer、Long、Single、Double、Date、Currency或Decimal) 进行数值比较。 两个表达式都是String 进行字符串比较 一个表达式是数值数据类型而另一个是数字Variant、或可以为一数字 进行数值比较。 一个表达式是数值数据类型而另一个是不能转换成数字的字符串Variant 产生类型不匹配的错误。 一个表达式是String,而另一个是除了N
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb60 运算 大全