已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 Visual Basic的语言基础与任何现代编程语言一样,Visual Basic 支持许多公共的编程结构和语言元素。Visual Basic是一种基于对象的编程语言,对象使编程变得比以往任何时候都容易。Visual Basic语言的主要特点是事件驱动,一旦掌握了这特点,就能更充分地利用它们,顺序地完成代码的编写工作,使用VB为我们实现高效的功能。2.1 标准数据类型布尔型(Boolean) 字节型(Byte) 整型(Integer) 长整型(Long)单精度型(Single) 双精度型(Double) 货币型(Currency) 日期型(Date)字符串(String)(变长) 字符串(String)(定长) 对象型(Object) 变体(Variant)(字符)变体(Variant)(数值) 自定义型(User-defined)注意:不同数据类型在机器中占用的存储空间不同,即占用的字节数不同,系统对其处理的方法也不同,在程序中要对数据类型有明确的说明或定义。1. 数值(Numeric)数据类型Visual Basic 支持几种 Numeric 数据类型 Integer(整型)、Long(长整型)、Single(单精度浮点型)、Double(双精度浮点型)和 Currency(货币型)。与 Variant 类型相比,Numeric 类型占用的存储空间通常要少。Integer 数据类型 整数,存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。Integer 的类型声明字符(尾标)是百分比符号 (%):234%、-456%可以用十进制、十六进制和八进制表示:十进制整数:只能含09、正号和负号:10,255,-45十六进制整数:只能是正数,由数字09、AF或af组成,并以&H引导,其总的位数=4,其范围:&H0&HFFFF八进制整数:只能是正数,由数字07组成,并以&O或&引导,其总的位数 conWorldPop Then Exit Sub 设定用户自定义常量的范围和变量声明一样, Const 语句也有范围,也使用相同的规则: 为创建仅存在于过程中的常量,请在这个过程内部声明常量。为创建一常量,它对模块中所有过程都有效,但对模块之外任何代码都无效,请在模块的声明段中声明常量。为创建在整个应用程序中有效的常量,请在标准模块的声明段中进行声明,并在 Const 前面放置 Public 关键字。在窗体模块或类模块中不能声明 Public 常量。系统提供的常量VB内部的或系统定义的常量是应用程序和控件提供的。在“对象浏览器”中的 Visual Basic ( VB ) 、和 Visual Basic for applications ( VBA ) 对象库中列举了 Visual Basic 的常数。其它提供对象库的应用程序,如 Microsoft Excel 和 Microsoft Project,也提供了常数列表,这些常数可与应用程序的对象、方法和属性一起使用。在每个 ActiveX 控件的对象库中也定义了常数 。说明:在 Visual Basic 中,常数名采用大小写混合的格式,其前缀表示定义常数的对象库名。来自 Visual Basic 和 Visual Basic for applications 对象库的常数以 vb 开头,例如vbTileHorizontal。2.4 表达式在VB中有丰富的运算符,并能组合成各种表达式,实现程序编制中所需要的大量操作. 在VB中运算符可分为算术运算符、字符串运算符、日期运算符、关系运算符和逻辑运算符,利用这些运算符就构成了相应的表达式,完成了各种类型的运算。2.4.1 算术表达式由算术运算符、数值型常量、变量、函数和圆括号组成,其运算结果为一数值的表达式称为算术表达式,也称为数值表达式,如: 50*8+(70-6)/81.算术运算符算术运算符多为双目运算,即有两个操作数参加运算(参见P34表2-2) 乘方 ab* 乘 a*b/ 除 a/b 整除 ab Mod 取模(求余数) 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. 表达式的书写规则乘号“*”不能省略.例x乘以y必须写成:x*y圆括号必须成对出现,只使用圆括号表达式从左到右在同一行上书写,无高低大小之分.例:其VB表达式为: sqr(3*x+y)-z)/(x*y)43.不同数据类型的转换如果参加运算的操作数具有不同数据类型,则VB的运算结果的数据类型总是采用精度高的数据类型.各种数据类型的精度关系: integerlongsingledouble关系运算逻辑运算算术运算符之间的优先级关系:(指数运算符)-(负号)*,/(乘,除)(整除)mod(求余)+,-(加,减)注:可以使用圆括号改变优先级或使表达式更清晰.2.4.2 字符串表达式字符串运算符+ 连接两个字符串,两个操作数必须均为字符串,若一个为字符串,一个为数值型操作数,系统报错.& 连接两个字符串,其操作数可以是字符串型,也可以是数值型,系统首先把操作数转换为字符型,后连接.注意,若&前是一个变量,则&与变量名之间要加空格,否则系统认为这个&是变量的尾标(长整型).例(P35-1.VBP)字符串运算Private Sub Command1_Click()s1$ = 计算机 + 与程序设计s2$ = 门 + 程序设 & 计课程x = 8s3$ = x & s2$Print s1$, s2$Print s3$End SubPrivate Sub Form_Load()FontSize = 28End Sub2.4.3 日期表达式日期数据可以进行加、减运算,有以下三种情况: 日期型数据1-日期型数据2=天数 日期型数据1+天数=日期型数据2 日期型数据1-天数=日期型数据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 表示数值表达式C 表示字符表达式D 表示日期表达式$ 置于函数名后,表示函数返回值为字符串1.数学函数(P36表2-4)数学函数,即与数学中的定义相同的函数Abs(N) 取绝对值函数Atn(N) 反正切函数Cos(N) 余函数Exp(N) 以e为底的指数函数Fix(N) 去尾函数(删除一个数的小数部分,返回整数部分)Int(N) 取整函数(返回一个接近N不大于N的整数)Log(N) 自然对数函数Sgn(N) 符号函数(根据N是负,0,正返回-1,0,1)Sin(N) 正弦函数Sqr(N) 平方根函数Tan(N) 正切函数注:在三角函数中,角度均以弧度表示2字符串函数(P37表2-5)字符串编码ANSI(ASCII)ANSI 是个人计算机使用得最普遍的字符集。由于 ANSI 标准使用单一字节表示每个字符,因此最多只能有 256 个字符和标点符号代码。虽然对英语来说已经足够了,但不能完全支持其它语言。DBCS(Double Byte Character Set)发行在亚洲大部分地区的 Microsoft Windows 系统使用 DBCS。它支持很多不同的东亚语言字母,如汉语、日语和朝鲜语。DBCS 使用数字 0128 表示 ASCII 字符集。其它大于 128 的数字作为前导字节字符,它并不是真正的字符,只是简单的表明下一个字符属于非拉丁字符集。在 DBCS 中,ASCII 字符的长度是一个字节,而日语、朝鲜语和其它东亚字符的长度是 2 个字节。Unicode(国际标准化组织字符标准)Unicode 是用两个字节表示每个字符的字符编码方案。国际标准组织 (ISO) 几乎为每种语言的每个字符和符号在 0 到 65,535 (216 1) 范围内定义了一个数字(再加上为将来发展保留的一些空余空间)。在所有 32 位版本的 Windows 中,部件对象模型 (COM) 都使用 Unicode,它是 OLE 和 ActiveX 技术的基础。Windows NT 全部支持 Unicode。虽然 Unicode 和 DBCS 都是双字节字符,但它们的编码方案完全不同。在Visual Basic中使用 Unicode 存储和操作字符串。InStr 函数返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。语法格式:InStr(start, string1, string2, compare)Start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。string1 必要参数。接受搜索的字符串表达式。string2 必要参数。被搜索的字符串表达式。Compare 可选参数。指定字符串比较方式。如果 compare 是 Null,将发生错误。如果省略 compare,Option Compare语句 的设置将决定比较的类型。compare 参数设置为: -1 使用Option Compare语句设置执行一个比较。 0 执行二进制比较(区分大小写)。 1 执行原文的比较(不区分大小写)。如:printf Instr(2,”ABCDEFG”,”EF”) 返回5(p36-1.vbp)InStrRev函数返回一个字符串在另一个字符串中出现的位置,从字符串的末尾算起。语法格式: InstrRev(string1, string2, start, compare)例instrrev(“ABCDEFEFG”,”EF”) 返回7Join函数返回一个字符串,该字符串是通过连接某个数组中的多个子字符串而创建的。语法格式: Join(list, delimiter)list 必需的。包含被连接子字符串的一维数组。Delimiter 可选的。在返回字符串中用于分隔子字符串的字符。如果忽略该项,则使用空格(“ ”)来分隔子字符串。如果delimiter是零长度字符串(“”),则列表中的所有项目都连接在一起,中间没有分隔符。如:a = Array(123, ab, c)Print Join(a, “”) 输出123abcLeft 函数返回 Variant (String),其中包含字符串中从左边算起指定数量的字符。语法格式: Left(string, length)或Left$(string,length)String 必要参数。字符串表达式其中最左边的那些字符将被返回。如果 string 包含 Null,将返回 Null。Length 必要参数;为 Variant (Long)。数值表达式,指出将返回多少个字符。如果为 0,返回零长度字符串 ()。如果大于或等于 string 的字符数,则返回整个字符串。说明:欲知 string 的字符数,使用 Len 函数。Print Left(“ABCDEFG”, 3) 输出“ABC”Len 函数返回 Long,其中包含字符串内字符的数目,或是存储一变量所需的字节数。语法格式: Len(string | varname)string任何有效的字符串表达式。如果 string 包含 Null,会返回 Null。Varname任何有效的变量名称。如果 varname 包含 Null,会返回 Null。如果 varname 是 Variant,Len 会视其为 String 并且总是返回其包含的字符数。说明:两个可能的参数必须有其一(而且只能有其一)。如为用户定义类型,Len 会返回其写至文件的大小。注意:LenB 函数作用于字符串中的字节数据,如同在双字节字符集(DBCS)语言中一样。所以 LenB 返回的是用于代表字符串的字节数,而不是返回字符串中字符的数量。如为用户自定义类型,LenB 返回在内存中的大小,包括元素之间的衬垫。当在用户自定义数据类型中使用变长字符串时,Len 可能不能确定实际存储所需的字节数目。Print Len(“AB高等教育”) 输出6Print LenB(“AB高等教育”) 输出12LTrim、RTrim与 Trim 函数返回 Variant (String),其中包含指定字符串的拷贝,没有前导空白 (LTrim)、尾随空白 (RTrim) 或前导和尾随空白 (Trim)。语法格式:LTrim(string)RTrim(string)Trim(string)必要的 string 参数可以是任何有效的字符串表达式。如果 string 包含 Null,将返回 Null。Print LTrim(“ ABCD”) 输出“ABCD”Mid 函数返回 Variant (String),其中包含字符串中指定数量的字符。语法格式: Mid(string, start, length)string必要参数。字符串表达式,从中返回字符。如果 string 包含 Null,将返回 Null。start必要参数。为 Long。string 中被取出部分的字符位置。如果 start 超过 string 的字符数,Mid 返回零长度字符串 ()。length可选参数;为 Variant (Long)。要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到尾端的所有字符。注意:MidB 函数作用于字符串中包含的字节数据,如同在双字节字符集(DBCS)语言中一样。因此其参数指定的是字节数,而不是字符数。Print Mid(“ABCDEFG”, 2, 3) 输出“BCD”Replace函数返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。语法格式:Replace(expression,find,replacewith,start,count,compare)expression必需的。字符串表达式,包含要替换的子字符串。find必需的。要搜索到的子字符串。replacewith必需的。用来替换的子字符串。start可选的。在表达式中子字符串搜索的开始位置。如果忽略,假定从1开始。count可选的。子字符串进行替换的次数。如果忽略,缺省值是 1,它表明进行所有可能的替换。compare可选的。数字值,表示判别子字符串时所用的比较方式。说明:Replace函数的返回值是一个字符串,但是,其中从start所指定的位置开始,到expression字符串的结尾处的一段子字符串已经发生过替换动作。并不是原字符串从头到尾的一个复制。Print Replace(ABCDABCD, CD, 123) 返回AB123AB123Right 函数返回 Variant (String),其中包含从字符串右边取出的指定数量的字符。语法格式: Right(string, length)string必要参数。字符串表达式,从中最右边的字符将被返回。如果 string 包含 Null,将返回 Null。length必要参数;为 Variant (Long)。为数值表达式,指出想返回多少字符。如果为 0,返回零长度字符串 ()。如果大于或等于 string 的字符数,则返回整个字符串。注意:RightB 函数作用于包含在字符串中的字节数据。所以 length 指定的是字节数,而不是指定返回的字符数。Print Right(“ABCDEFG”, 3) 输出“EFG”Space 函数返回特定数目空格的 Variant (String)。语法格式:Space(number)number 参数为字符串中想要的空格数。说明:Space 函数在格式输出或清除固定长度字符串数据时很有用。Split函数返回一个下标从零开始的一维数组,它包含指定数目的子字符串。语法格式:Split(expression, delimiter, count, compare)expression必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(),Split则返回一个空数组,即没有元素和数据的数组。delimiter可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符( )作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。count可选的。要返回的子字符串数,1表示返回所有的子字符串。compare可选的。数字值,表示判别子字符串时使用的比较方式。s = Split(123,56,ab, ,)Print s(0), s(1), s(2)输出:123 56 abStrComp 函数返回 Variant (Integer),为字符串比较的结果。语法格式:StrComp(string1, string2, compare)string1必要参数。任何有效的字符串表达式。string2必要参数。任何有效的字符串表达式。Compare可选参数。指定字符串比较的类型。如果compare 参数是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。string1 小于 string2 返回:-1string1 等于 string2 返回:0string1 大于 string2 返回:1string1 或 string 2为 Null 返回:NullPrint StrComp(“ABCDEF”, “BC”) 输出-1String 函数返回 Variant (String),其中包含指定长度重复字符的字符串。语法格式: String(number, character)number必要参数;Long。返回的字符串长度。如果 number 包含 Null,将返回 Null。character必要参数;Variant。为指定字符的字符码或字符串表达式,其第一个字符将用于建立返回的字符串。如果 character 包含 Null,就会返回 Null。说明:如果指定 character 的数值大于 255,String 会按下面的公式将其转为有效的字符码:character Mod 256StrReverse函数返回一个字符串,其中一个指定子字符串的字符顺序是反向的。语法格式: StrReverse(string1)string1是一个字符串,它的字符顺序要被反向。如果string1是一个长度为零的字符串(“”),则返回一个长度为零的字符串。如果string1为Null,则产生一个错误。例(p36-1.vbp)字符串函数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()求字符串的字符数,LenB()求字符串的字节数,strconv()完成unicode与DBCS之间的转换.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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学生职业生涯规划第六章61-62满分答案
- 2025年二级建造师考试试卷及1套参考答案详解
- 2025年德惠社区专职工作人员招聘真题
- 安全员C证考试题库及答案王牌题库
- 变压器检修职业技能鉴定题库(中级工)第045套
- 全国计算机等级考试一级综合试题分套练习
- 上海市七年级上学期期末文言文、古诗文复习题集
- 2025年多器官功能衰竭护理管理试题汇编及解析
- 公务员行测测试题附答案
- 山东省潍坊市自主招生面试题(中考)模拟试题集精析
- 城市轨道交通企业班组管理PPT完整全套教学课件
- 儿内科消化系统疾病诊疗规范2023版
- 1例高脂血症性急性胰腺炎护理查房
- 影视欣赏校本课程(完整版)资料
- 气凝胶行业深度报告
- 2022年贵州毕节市乡村振兴局下属事业单位考调笔试备考题库及答案解析
- 天津市建筑工程施工质量验收资料管理规程DBT29-209-2020
- 公路水运交安三类人员考试试题及答案
- GB/T 33056-2016含氟废气处理处置技术规范
- GB/T 12967.6-2008铝及铝合金阳极氧化膜检测方法第6部分:目视观察法检验着色阳极氧化膜色差和外观质量
- 个案护理报告范文(优选十六篇)
评论
0/150
提交评论