第9章处理字符串和日期时间

上传人:仙*** 文档编号:172653242 上传时间:2022-12-05 格式:PPT 页数:66 大小:296.02KB
返回 下载 相关 举报
第9章处理字符串和日期时间_第1页
第1页 / 共66页
第9章处理字符串和日期时间_第2页
第2页 / 共66页
第9章处理字符串和日期时间_第3页
第3页 / 共66页
点击查看更多>>
资源描述
大学计算机基础教程TaiYuan University of Technology第第9 9章章 处理字符串和日期时间处理字符串和日期时间 Visual Basic 程序设计教程程序设计教程Visual Basic程序设计教程2本章主要介绍:本章主要介绍:字符类型和字符数组字符类型和字符数组操作字符串操作字符串查找和替换字符串查找和替换字符串处理日期和时间处理日期和时间使用使用VBVB的日历控件的日历控件MonthViewMonthViewVisual Basic程序设计教程3 在大量的应用系统中,文本是表达和交互数在大量的应用系统中,文本是表达和交互数 据的基本类型,而文本的计算机内部表示就据的基本类型,而文本的计算机内部表示就 是字符数据类型是字符数据类型 学会运用学会运用VBVB提供的内部函数,包括比较字符提供的内部函数,包括比较字符 串和搜索字符串,以及在字符串和其他数据串和搜索字符串,以及在字符串和其他数据 类型之间的转换等类型之间的转换等Visual Basic程序设计教程4往往应用程序中需要有日期和时间的相关信息,往往应用程序中需要有日期和时间的相关信息,这就涉及到程序如何表达以及如何使用这就涉及到程序如何表达以及如何使用 合适的格式表达程序中对日期时间的处理要合适的格式表达程序中对日期时间的处理要 求求 Visual Basic程序设计教程5 【例【例9-19-1】一个简单的一个简单的示例程序,把给出的字符示例程序,把给出的字符进行加密,然后再解密,进行加密,然后再解密,程序界面如图所示程序界面如图所示:Visual Basic程序设计教程6 Dim Str1 As String,Str2 As String Dim Str1 As String,Str2 As String Option Compare Text Option Compare Text Private Sub CmdEncrypt_Click Private Sub CmdEncrypt_Click()()Dim N As Byte,Count As Integer Dim N As Byte,Count As Integer Text2.Text=Text2.Text=N=Len(Text1.Text)N=Len(Text1.Text)For Count=1 To N For Count=1 To N Str1=Mid(Text1.Text,Count,1)Str1=Mid(Text1.Text,Count,1)If(Count Mod 2)=0 Then If(Count Mod 2)=0 Then Text2.Text=Text2.Text Text2.Text=Text2.Text&ChrW(AscW(Str1)+2)&ChrW(AscW(Str1)+2)Else Else Text2.Text=Text2.Text Text2.Text=Text2.Text&ChrW(AscW(Str1)+1)&ChrW(AscW(Str1)+1)End If End If Next Next End Sub End SubPrivate Sub Form_LoadPrivate Sub Form_Load()()Label1.Caption=Label1.Caption=请输入:请输入:Label2.Caption=Label2.Caption=加密后输出:加密后输出:Label3.Caption=Label3.Caption=解密后输出解密后输出 Text1.Text=Text1.Text=Text2.Text=Text2.Text=Text3.Text=Text3.Text=End SubEnd SubVisual Basic程序设计教程7Private Sub CmdUncoil_ClickPrivate Sub CmdUncoil_Click()()Dim N As Byte,Count As Integer Dim N As Byte,Count As Integer Text3.Text=Text3.Text=N=Len(Text2.Text)N=Len(Text2.Text)For Count=1 To N For Count=1 To N Str1=Mid(Text2.Text,Count,1)Str1=Mid(Text2.Text,Count,1)If Count Mod 2=0 Then If Count Mod 2=0 Then Text3.Text=Text3.Text Text3.Text=Text3.Text&ChrW(AscW(Str1)-2)&ChrW(AscW(Str1)-2)Else Else Text3.Text=Text3.Text Text3.Text=Text3.Text&ChrW(AscW(Str1)-1)&ChrW(AscW(Str1)-1)End If End If Next Next End SubEnd SubVisual Basic程序设计教程8本节在小结前述章节的有关字符数据类型的基础本节在小结前述章节的有关字符数据类型的基础上,进一步介绍有关字符运算、字符数组和实现。上,进一步介绍有关字符运算、字符数组和实现。各种字符操作和字符转换、类型转换的各种字符操作和字符转换、类型转换的VBVB函数。函数。Visual Basic程序设计教程99.3.1 字符和字符串字符和字符串1 1字符数据类型字符数据类型VBVB的字符类型数据支持两种格式,一种是定长,另一种的字符类型数据支持两种格式,一种是定长,另一种是不定长。如:是不定长。如:Dim Str1 As StringDim Str1 As StringDim Str2 As String Dim Str2 As String*长度数值长度数值在在VBVB中,变长字符串最多可包含大约中,变长字符串最多可包含大约2020亿亿(231)(231)个字符,个字符,而定长字符串可包含而定长字符串可包含1 1到大约到大约 64K(216)64K(216)个字符。个字符。Visual Basic程序设计教程102 2字符连接运算字符连接运算VBVB使用符号使用符号“&”&”和和“+”+”连接字符串形成更大的连接字符串形成更大的字符串。字符串。(1 1)如果连接运算符的两边都是字符型数据,这两个符号都可以使)如果连接运算符的两边都是字符型数据,这两个符号都可以使用。用。(2 2)如果把不同类型的数据连接为字符串,使用连接符)如果把不同类型的数据连接为字符串,使用连接符“&”&”。建。建议使用议使用“&”&”连接符,可以避免出现类型不匹配的错误。例:连接符,可以避免出现类型不匹配的错误。例:Str1=“Hell”+“World”Str1=“Hell”+“World”Str1 Str1中的字符为中的字符为 “Hello World”Hello World”Str1=”Hello”+2Str1=”Hello”+2 运行时产生,类型不匹配错误,应该使用运行时产生,类型不匹配错误,应该使用&代替代替Visual Basic程序设计教程119.3.2 比较字符比较字符1 1使用比较运算符使用比较运算符 理解一个字符理解一个字符“大于大于”、“小于小于”或者或者“等等 于于”的含义,是考虑字符在字符表中位置后决的含义,是考虑字符在字符表中位置后决 定的。它们按照定的。它们按照ASCIIASCII码对字符进行排序,然后码对字符进行排序,然后 比较它们的代码值的大小决定比较结果。比较它们的代码值的大小决定比较结果。Visual Basic程序设计教程12Dim Str1 As String,Str2 As StringDim Str1 As String,Str2 As String Str1=A:Str2=B Str1=A:Str2=B Print Str1=Str2 Print Str1=Str2 比较结果为比较结果为FalseFalse,因为字符,因为字符 “A”A”和和“B”B”不相等不相等 Print Str1=Str2 Print Str1 Str2 Print Str1 Str2 比较结果为比较结果为TrueTrue,因为,因为 “abcabc”“VB6”“VB6”成立成立 Print Str1 Str2 Print Str1 Str2 比较结果为比较结果为FalseFalse,因为,因为 “abcabc”“VB6”“VB6”不成立不成立 Visual Basic程序设计教程132 2StrCompStrComp函数函数 函数函数StrCompStrComp用来比较两个字符串,并返回比较用来比较两个字符串,并返回比较结果。使用格式为:结果。使用格式为:StrComp(String1,String2,StrComp(String1,String2,CompareTypeCompareType)比较结果的返回值如下比较结果的返回值如下 :条件条件StrCompStrComp 返回值返回值string1 string1 小于小于 string2string2-1-1string1 string1 等于等于 string2string20 0string1 string1 大于大于 string2string21 1string1 string1 或或 string 2string 2为为 NullNullNullNullVisual Basic程序设计教程14CompareTypeCompareType参数意义如下表所示:参数意义如下表所示:常数常数值值描述描述vbUseCompareOption-1使用使用Option Compare语句设置执行一个比较语句设置执行一个比较vbBinaryCompare0执行一个二进制比较。执行一个二进制比较。vbTextCompare1执行一个按照原文的比较。执行一个按照原文的比较。vbDatabaseCompare2仅适用于仅适用于Microsoft Access,执行一个基于数据,执行一个基于数据库信息的比较。库信息的比较。Visual Basic程序设计教程159.3.3 String函数和函数和Str函数函数1 1StringString函数函数使用格式:使用格式:String(NumberString(Number,Character),Character)函数执行后按创建长度返回重复字符的字符串,函数执行后按创建长度返回重复字符的字符串,其中,其中,NumberNumber给出所创建的字符串长度。参数给出所创建的字符串长度。参数CharacterCharacter是一个字符(或是一个字符(或AsciiAscii码)或字符串表码)或字符串表达式,但只使用它的第一个字符创建新的字符串,达式,但只使用它的第一个字符创建新的字符串,如果如果CharacterCharacter包含了包含了NullNull就返回就返回NullNull。Visual Basic程序设计教程16 例:例:Dim str1 as string,str2 as Dim str1 as string,str2 as string,str3 string,str3 Str1=String(5,“Str1=String(5,“*”)”)返回返回 *。Str2=String(5,42)Str2=String(5,42)ASCII ASCII 码码4242的字符为的字符为*,返回返回 *。Str3=String(10,“ABC”+Null)Str3=String(10,“ABC”+Null)返返 回回 NullNull。Visual Basic程序设计教程172 2StrStr函数函数函数函数StrStr把一个数值转换为把一个数值转换为Variant(String)Variant(String)类类型。它的使用格式为:型。它的使用格式为:Str(NumberStr(Number)例:例:Str1=Str$(123.5)Str1=Str$(123.5)Str2=Str(-123.5)Str2=Str(-123.5)Print Str1,Str2 Print Str1,Str2 输出输出 123.5123.5,-123.5-123.5 注意字符串前有一个空格注意字符串前有一个空格和符号位和符号位Visual Basic程序设计教程189.3.4 字符数组字符数组 字符数组就是数组中的元素都是字符串的数组,字符数组就是数组中的元素都是字符串的数组,使用使用StringString定义字符数组。有关字符串数组操作定义字符数组。有关字符串数组操作的三个函数如下:的三个函数如下:1 1JoinJoin函数函数JoinJoin函数连接某个数组中的多个子字符串而创建函数连接某个数组中的多个子字符串而创建一个新的字符串。函数格式为:一个新的字符串。函数格式为:Join(ListJoin(List,Delimiter),Delimiter)Visual Basic程序设计教程19 其中参数其中参数ListList指出被连接的字符数组指出被连接的字符数组DelimiterDelimiter是可选参数,在返回字符串中用于是可选参数,在返回字符串中用于分隔子字符串的字符。默认使用空格分隔子字符串的字符。默认使用空格 来分来分隔子字符串。如果隔子字符串。如果DelimiterDelimiter是零长度字符串是零长度字符串,所有元素项都连接在一起,中间没有分隔,所有元素项都连接在一起,中间没有分隔符。符。Visual Basic程序设计教程20例如:例如:Dim StrA(2)As String,Str1 As StringDim StrA(2)As String,Str1 As String StrA(0)=StrA(0)=欢迎来到欢迎来到 StrA(1)=Visual StrA(1)=Visual StrA(2)=Basic 6 StrA(2)=Basic 6 Str1=Join(StrA Str1=Join(StrA)连接字符数组连接字符数组StrAStrA中三个字符串中三个字符串Visual Basic程序设计教程212 2SplitSplit函数函数 给定一个字符串,可以使用给定一个字符串,可以使用SplitSplit函数创建一个函数创建一个一维数组,它包含指定数目的子字符串。函数格式一维数组,它包含指定数目的子字符串。函数格式为:为:Split(StringExpress,Delimiter,Count,CompareTypeSplit(StringExpress,Delimiter,Count,CompareType)StringExpressStringExpress必需参数,字符串表达式。如果表达式的长度为零即为必需参数,字符串表达式。如果表达式的长度为零即为”,SplitSplit返回返回一个空数组,即没有元素和数据的数组一个空数组,即没有元素和数据的数组DelimiterDelimiter可选参数,标识子字符串边界字符。默认空格字符可选参数,标识子字符串边界字符。默认空格字符 为分隔符。如果该为分隔符。如果该参数是空字符参数是空字符“”“”,则返回数组仅包含一个元素,即,则返回数组仅包含一个元素,即StringExpressStringExpress字符字符串串CountCount可选参数,指定返回的子字符串数,可选参数,指定返回的子字符串数,11表示返回所有的子字符串表示返回所有的子字符串CompareTypeCompareType可选参数,用数字值表示判别子字符串时使用的比较方式。意义同表可选参数,用数字值表示判别子字符串时使用的比较方式。意义同表9.19.1Visual Basic程序设计教程22【例【例9-29-2】使用】使用SplitSplit函数。程序执行后的显示如图函数。程序执行后的显示如图所示。程序代码如下:所示。程序代码如下:Private Sub Form_LoadPrivate Sub Form_Load()()Dim x()As String Dim x()As String Dim y As String,n As Integer Dim y As String,n As Integer Show Show y=Welcome To Visual Basic 6!y=Welcome To Visual Basic 6!x=Split(y x=Split(y)For n=LBound(x)To UBound(x For n=LBound(x)To UBound(x)Print&x(n Print&x(n)Next Next End Sub End Sub Visual Basic程序设计教程233 3FilterFilter函数。函数。从一个已知数组中搜索指定的字符串,可以使用从一个已知数组中搜索指定的字符串,可以使用FilterFilter函数函数 ,ilterilter函数的格式为:函数的格式为:Filter(StringsArray,Value,Include,CompareTypeFilter(StringsArray,Value,Include,CompareType)StringsArrayStringsArray必需参数,被执行搜索的一维字符串数组必需参数,被执行搜索的一维字符串数组ValueValue必需参数,要搜索的字符串必需参数,要搜索的字符串IncludeInclude可选参数,可选参数,BooleanBoolean值。值。TrueTrue返回的是包含返回的是包含ValueValue子字符串的数组子集。子字符串的数组子集。FalseFalse则返回的是则返回的是不包含不包含ValueValue子字符串的数组子集子字符串的数组子集CompareTypeCompareType可选的数字值,表示所使用的比较类型,意可选的数字值,表示所使用的比较类型,意义同表义同表9.19.1Visual Basic程序设计教程24【例【例9-3】请从数组】请从数组A中选出包中选出包 括括“VB”和不包括和不包括“VB”的的元元 素。素。程序执行后的显示如图所示。程序执行后的显示如图所示。Visual Basic程序设计教程25Private Sub Form_LoadPrivate Sub Form_Load()()Show Show Dim A(6)As String,B()As String,C()As String Dim A(6)As String,B()As String,C()As String A(0)=C:A(1)=VB6:A(2)=C+A(0)=C:A(1)=VB6:A(2)=C+A(3)=Jave:A(4)=VB5:A(5)=MS.Net A(3)=Jave:A(4)=VB5:A(5)=MS.Net Print Print 数组数组 A A 中所有的字符串元素有:中所有的字符串元素有:Call Prt(A Call Prt(A)B()=Filter(A B()=Filter(A,VB),VB)Print Print 数组数组A A中包含有中包含有VBVB字符的元素有:字符的元素有:Call Prt(B Call Prt(B)C()=Filter(A C()=Filter(A,VB,False),VB,False)Print Print 数组数组A A中不包含中不包含VBVB字符的元素有:字符的元素有:Call Prt(C Call Prt(C)End SubEnd SubPrivate Sub Prt(m()As String)For n=0 To UBound(m)Print&m(n)Next PrintEnd SubVisual Basic程序设计教程26 本节给出本节给出VBVB处理字符串的常用操作,如取处理字符串的常用操作,如取单个字符、取其中指定的字符、去除字符串中单个字符、取其中指定的字符、去除字符串中的空格和转换函数。的空格和转换函数。Visual Basic程序设计教程279.4.1 Like运算符运算符 比较运算符比较运算符LikeLike用于比较字符串。用于比较字符串。LikeLike返回一个返回一个逻辑值:逻辑值:TrueTrue表示被比较的两个字符串相匹配,表示被比较的两个字符串相匹配,FalseFalse表示不匹配。使用格式为:表示不匹配。使用格式为:Result=Result=String1 Like PatternString1 Like Pattern VBVB根据模式匹配可以使用通配符来匹配字符串。根据模式匹配可以使用通配符来匹配字符串。也就是说使用也就是说使用WindowsWindows中的中的?、*和三个匹配和三个匹配符:?表示任何单一字符,符:?表示任何单一字符,*表示零个或多个字表示零个或多个字Visual Basic程序设计教程28 *表示零个或多个字符,表示零个或多个字符,#表示任何一个数字表示任何一个数字 (09)(09)。例如有。例如有Str1=“Hello World”Str1=“Hello World”,则表,则表达式达式 Str1 Like“Hello World”Str1 Like“Hello World”Str1 Like“Hello Str1 Like“Hello*”Str1 Like“Hello?”Str1 Like“Hello?”返回的结果为都为返回的结果为都为TrueTrue。Visual Basic程序设计教程299.4.2 使用使用Mid操作字符串中的字符操作字符串中的字符操作字符串中的单个或者多个字符,一般情况下使用操作字符串中的单个或者多个字符,一般情况下使用MidMid函函数或者数或者MidMid语句。关键字语句。关键字MidMid在在VBVB中既是函数也是语句中既是函数也是语句 。1MidMid函数函数 MidMid函数的格式如下:函数的格式如下:Mid(String1,Start,Length)Mid(String1,Start,Length)参数参数String1String1是被操作的字符串,是被操作的字符串,StartStart为一个数字,为一个数字,指示从指示从String1String1中的字符起始位置,中的字符起始位置,LengthLength是可选参数,是可选参数,指示要返回的字符数,如果不指定则从指示要返回的字符数,如果不指定则从StartStart开始往后的开始往后的所有字符。例如:所有字符。例如:Mid(“HelloMid(“Hello”,2,1)”,2,1)返回字符返回字符e e Visual Basic程序设计教程302 2MidMid语句语句 MidMid是作为语句使用,是作为语句使用,MidMid出现在赋值号的左边,格式出现在赋值号的左边,格式 为:为:MidMid(String1String1,Start,LengthStart,Length)=String2=String2 用用String2String2字符串代替字符串代替String1String1从从StartStart位置开始的字位置开始的字 符,可选参数符,可选参数LengthLength为替换的长度。注意,字符串为替换的长度。注意,字符串 String2String2的长度总是小于等于的长度总是小于等于LengthLength。假设我们已经定。假设我们已经定 义了义了MyStrMyStr=Visual Basic=Visual Basic,则:,则:Mid(Str1,8)=C+Mid(Str1,8)=C+执行的结果使得执行的结果使得Str1Str1中的字符串为中的字符串为“Visual Visual C+”(C+”(包括后面的两个空格包括后面的两个空格)。Visual Basic程序设计教程319.4.3 使用使用Left、Right和和InStr操作字符串操作字符串 1Left函数使用使用Left函数选择字符串左边起到指定位置的部分。函数选择字符串左边起到指定位置的部分。例如:例如:Str1=“Visual Basic”Str2=Left(Str1,6)2Right函数使用使用Right函数选择字符串的右边部分。例如:函数选择字符串的右边部分。例如:Str1=“Visual Basic”Str2=Rightt(Str1,5)Visual Basic程序设计教程323 3InStrInStr函数函数使用格式为:使用格式为:InStr(StartInStr(Start,String1,String2),String1,String2)可选参数可选参数StartStart为开始进行搜索的位置,默认为为开始进行搜索的位置,默认为1 1表示从表示从头开始。头开始。String1String1为基字符串,为基字符串,String2String2为搜索字符串,为搜索字符串,InStrInStr在在String1String1中搜索是否包含中搜索是否包含String2String2字符串。返回结字符串。返回结果为数字果为数字,0,0表示没有找到表示没有找到,非非0 0表示返回表示返回String2String2在在String1String1中出现的第一个起始位置中出现的第一个起始位置 假设假设Str1=”Visual Basic”Str1=”Visual Basic”,Str2=”Basic”Str2=”Basic”,则,则执行语句:执行语句:InStrInStr(Str1Str1,Str2Str2)返回的结果为返回的结果为8 8,表示表示“Basic”Basic”在在“Visual Basic”Visual Basic”中的位置为中的位置为8 8。Visual Basic程序设计教程339.4.4 删除多余的空格删除多余的空格 使用使用LTrimLTrim、RTrimRTrim与与TrimTrim函数得到一个字符串的函数得到一个字符串的拷贝拷贝,删除,删除前导空格前导空格 (LTrim)(LTrim)、删除尾随空格、删除尾随空格 (RTrim)(RTrim)。TrimTrim函数将两头空格全部去除,但不函数将两头空格全部去除,但不删除中间的空格。删除中间的空格。例例:Dim MyString,TrimStringDim MyString,TrimString MyString MyString=VB6 =VB6 TrimString=LTrim(MyString)TrimString TrimString=LTrim(MyString)TrimString=VB6 =VB6 TrimString=RTrim(MyString)TrimString TrimString=RTrim(MyString)TrimString=VB6=VB6 TrimString=Trim(MyString)TrimString=Trim(MyString)TrimString TrimString=VB6=VB6Visual Basic程序设计教程349.4.5 转换函数转换函数1 1AscAsc和和ChrChr函数函数AscAsc是取一个字符的是取一个字符的ASCIIASCII码的函数码的函数;Asc Asc函数对单个的字符计算,如果给出的字符多于函数对单个的字符计算,如果给出的字符多于一个,它计算第一个字符的一个,它计算第一个字符的ASCIIASCII值。值。例如例如:Asc(”a”)得到的值为得到的值为97 Chr是是Asc的逆函数,它将一个数值转换为对应的字符,例如的逆函数,它将一个数值转换为对应的字符,例如 Chr(97)返回的就是字母返回的就是字母a。Chr(13)和和Chr(10)就分别代表回车就分别代表回车 和换行。和换行。Visual Basic程序设计教程352 2转换大小写转换大小写函数函数UCaseUCase和和LCaseLCase分别将字符串的字母转换为大分别将字符串的字母转换为大写或小写。它们的使用方法比较简单:写或小写。它们的使用方法比较简单:UCase(StringExpressUCase(StringExpress)LCase(StringExpress LCase(StringExpress)其中,其中,StringExpressStringExpress可以是字符串或者是字符可以是字符串或者是字符串表达式。例如串表达式。例如Str1=Visual Basic 6Str1=Visual Basic 6,则:,则:StrResult=UCase(Str1)StrResult=UCase(Str1)StrResult StrResult=”VISUAL BASIC 6”=”VISUAL BASIC 6”StrResult=LCase(Str1)StrResult=LCase(Str1)StrResult StrResult=“visual basic 6”=“visual basic 6”Visual Basic程序设计教程363 3IsNumbericIsNumberic和和ValValIsNumericIsNumeric判断一个字符串是否可以被完整地转换为数字,判断一个字符串是否可以被完整地转换为数字,例如:例如:Print IsNumeric(“123.456”)Print IsNumeric(“123.456”)执行后输出为执行后输出为TrueTrue,Print IsNumeric(123A.456)Print IsNumeric(123A.456)执行后的输出则为执行后的输出则为FalseFalse。其他的判断类型的函数还有其他的判断类型的函数还有IsStrIsArrayIsStrIsArray判断变判断变量是否为一个数组,量是否为一个数组,IsEmptyIsEmpty 函数判断变量是否函数判断变量是否已经初始化,已经初始化,IsErrorIsError函数判断表达式是否为一函数判断表达式是否为一个错误值。个错误值。IsNullIsNull函数判断表达式是否不包含任函数判断表达式是否不包含任何有效数据何有效数据 (Null)(Null),IsObjectIsObject函数判断标示符函数判断标示符是否表示对象变量等,它们返回的都是布尔值。是否表示对象变量等,它们返回的都是布尔值。Visual Basic程序设计教程37ValVal的函数的使用格式为:的函数的使用格式为:Val(StringExpressVal(StringExpress)把字符串表达式把字符串表达式StringExpressStringExpress转换为数字,按以转换为数字,按以 下规则:下规则:(1 1)如果)如果StringExpressStringExpress是由数符组成(包括小是由数符组成(包括小 数点),则返回一个转换的数字值。数点),则返回一个转换的数字值。(2 2)如果)如果StringExpressStringExpress中的数符含有空格,忽中的数符含有空格,忽 略空格。略空格。Visual Basic程序设计教程38 (3 3)如果)如果StringExpressStringExpress含有数字和字母等其他含有数字和字母等其他符号,只转换最前符号,只转换最前 面的数字部分。面的数字部分。例:例:MyValueMyValue=Val(“2457”)=Val(“2457”)返回返回 24572457。MyValueMyValue=Val(“2 45 7”)=Val(“2 45 7”)返回返回 24572457。MyValueMyValue=Val(24 and 57)=Val(24 and 57)返回返回 2424。Visual Basic程序设计教程394 4HexHex和和OctOct Hex Hex和和OctOct是将一个数值型或字符型表达式转换是将一个数值型或字符型表达式转换为十六进制和八进制数。例如:为十六进制和八进制数。例如:Print Hex(123)Print Hex(123)Print Oct(123)Print Oct(123)分别输出十六进制数分别输出十六进制数7B7B和八进制数和八进制数173 173 Visual Basic程序设计教程40函数函数返回类型返回类型Expression Expression 参数范围参数范围CBoolCBool BooleanBoolean任何有效的字符串或数值表达式。任何有效的字符串或数值表达式。CByteCByte ByteByte0 0 至至 255255。CCurCCurCurrencyCurrency-922,337,203,685,477.5808-922,337,203,685,477.5808至至922,337,203,685,477.5807922,337,203,685,477.5807。CDateCDateDateDate任何有效的日期表达式,如任何有效的日期表达式,如#05-12-31#05-12-31#。CDblCDblDouble Double 负数从负数从-1.79769313486232E308-1.79769313486232E308至至 -4.94065645841247E-324-4.94065645841247E-324;正数从;正数从4.94065645841247E-3244.94065645841247E-324至至1.79769313486232E3081.79769313486232E308。CDecCDecDecimalDecimal零变比数值,即无小数位的数值为零变比数值,即无小数位的数值为:+/-79,228,162,514,264,337,593,543,950,335:+/-79,228,162,514,264,337,593,543,950,335。对于对于 28 28 位小数的数值,范围则为:位小数的数值,范围则为:+/-7.9228162514264337593543950335+/-7.9228162514264337593543950335;最小的可能非零值是最小的可能非零值是 0.00000000000000000000000000010.0000000000000000000000000001。CIntCIntIntegerInteger-32,768-32,768 至至 32,76732,767,小数部分四舍五入。,小数部分四舍五入。CLngCLngLongLong-2,147,483,648-2,147,483,648 至至 2,147,483,6472,147,483,647,小数部分四舍五入。,小数部分四舍五入。CSngCSngSingleSingle负数为负数为 -3.402823E38-3.402823E38 至至 -1.401298E-45-1.401298E-45;正数为正数为 1.401298E-45 1.401298E-45 至至 3.402823E383.402823E38。CStrCStrStringString依据依据 ExpressionExpression 参数返回参数返回 CstrCstr。CVarCVarVariantVariant若为数值,则范围与若为数值,则范围与DoubleDouble相同;若为非数值则范围与相同;若为非数值则范围与String String 相同。相同。9.4.6 其它类型转换函数其它类型转换函数Visual Basic程序设计教程419.4.7 格式化函数格式化函数Format Format Format函数的使用格式为:函数的使用格式为:Format(ExpressionFormat(Expression,format),format)其中,表达式其中,表达式ExpressionExpression可以为任何有效表可以为任何有效表达式,而可选参数达式,而可选参数FormatFormat为指定的格式表达式。为指定的格式表达式。格式可以是格式可以是VBVB预先定义的,也可以是用户定义的。预先定义的,也可以是用户定义的。可使用可使用VBVB预定义名字来指定这些格式,如表预定义名字来指定这些格式,如表9.39.3所示。数字格式可以由用户指定,如表所示。数字格式可以由用户指定,如表9.49.4所示。所示。格式名总是用双引号格式名总是用双引号括起来。括起来。Visual Basic程序设计教程42例:例:Num1=123456789.34567Num1=123456789.34567 Print Format(Num1,“Currency”)Print Format(Num1,“Currency”)显示显示¥123,456,789.35123,456,789.35 Print Format(0.154,Percent)Print Format(0.154,Percent)显示显示15.4%15.4%Print Format(1,On/Off)Print Format(1,On/Off)显示显示 OnOn Format(8315.4,“00000.00”)Format(8315.4,“00000.00”)显示显示08315.4008315.40 Format(8315.4,“#.#”)Format(8315.4,“#.#”)显示显示8315.48315.4 Format(8315.4,“#,#0.00”)Format(8315.4,“#,#0.00”)显示显示8,315.408,315.40 Format(315.4,“$#0.00”)Format(315.4,“$#0.00”)显示显示$315.40$315.40Visual Basic程序设计教程439.4.8 Len函数和函数和Space函数函数 1 1LenLen函数函数 函数执行后返回一个函数执行后返回一个LongLong型值,指示字符串内字型值,指示字符串内字符的数目,或是存储一变量所需的字节数。使用符的数目,或是存储一变量所需的字节数。使用格式为:格式为:Len(string|varnameLen(string|varname)例:例:dim x as stringdim x as string x=“abcd x=“abcd”print len(x print len(x)显示显示4 4 dim x as integer dim x as integer x=12345 x=12345 print len(x print len(x)显示显示2 2Visual Basic程序设计教程442 2SpaceSpace函数函数执行执行SpaceSpace函数返回特定数目空格。使用格式为:函数返回特定数目空格。使用格式为:Space(numberSpace(number)其中所必须的其中所必须的numbernumber参数为字符串中想要的空参数为字符串中想要的空格数。例如:格数。例如:Dim MyStringDim MyString MyString MyString=Space(10)=Space(10)返回返回 10 10 个空格的字符串。个空格的字符串。MyStringMyString=Hello&=Hello&Space(10)&WorldSpace(10)&World 将将 10 10 个空格插入两个字符串中间。个空格插入两个字符串中间。Visual Basic程序设计教程45字处理器中,字符的查找和替换是基本功能。运用字处理器中,字符的查找和替换是基本功能。运用前面介绍过的一些字符处理函数,可以实现对字符前面介绍过的一些字符处理函数,可以实现对字符串中的指定的子字符串进行查找和替换操作串中的指定的子字符串进行查找和替换操作,例如使例如使用用InStrInStr,使用,使用MidMid函数和函数和MidMid语句等。语句等。VBVB还提供了一还提供了一个函数个函数ReplaceReplace实现这个功能。实现这个功能。ReplaceReplace函数返回一个字符串,该字符串中指定的子函数返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的字符串已被替换成另一子字符串,并且替换发生的次数也可以指定。使用格式为:次数也可以指定。使用格式为:Visual Basic程序设计教程46 Replace(Expression,Find,Replacewith Replace(Expression,Find,Replacewith,Start,Start,Count)Count)函数参数函数参数ExpressionExpression为字符串表达式,其中包含要被替换的为字符串表达式,其中包含要被替换的子字符串。子字符串。FindFind是指定要搜索的子字符串,是指定要搜索的子字符串,ReplacewithReplacewith用用来替换的子字符串。来替换的子字符串。StartStart确定在确定在ExpressExpress子字符串搜索的开子字符串搜索的开始位置,默认从始位置,默认从1 1开始。开始。CountCount为进行替换的次数,默认是为进行替换的次数,默认是11,它表明进行所有可能的替换。可以根据,它表明进行所有可能的替换。可以根据ReplaceReplace函数的函数的返回值判断查找和替换操作的结果。返回值如表返回值判断查找和替换操作的结果。返回值如表9.59.5所示。所示。Visual Basic程序设计教程47【例【例9-49-4】用一个文本框作为简单的字编辑器,】用一个文本框作为简单的字编辑器,在其中输入一段有关电在其中输入一段有关电 脑编程的文字,然后用脑编程的文字,然后用 查找替换的方法,将文查找替换的方法,将文 本框中的本框中的“电脑电脑”全部全部 替换为替换为“计算机计算机”。程序界面如图所示程序界面如图所示Visual Basic程序设计教程48【例【例9-59-5】使用】使用VBVB的函数处理日期和时间的示例。的函数处理日期和时间的示例。Private Sub Form_LoadPrivate Sub Form_Load()()Label1.Caption=“VB Label1.Caption=“VB的日期和时间格式的日期和时间格式”List1.Additem List1.Additem 当前的日期和时间当前的日期和时间:&Now:&Now List1.Additem List1.Additem 今天是:今天是:&Date&Date List1.Additem List1.Additem 今天是:今天是:&Day(Date&Day(Date)&)&号号 List1.Additem List1.Additem 今天是:一周的第今天是:一周的第&Weekday(Date&Weekday(Date)&)&天天 List1.Additem List1.Additem 今天是:今天是:&Weekdayname(Weekday(Date&Weekdayname(Weekday(Date)List1.Additem List1.Additem 本月是:本月是:&Monthname(Month(Date&Monthname(Month(Date)List1.Additem List1.Additem 今年是:今年是:&Year(Date&Year(Date)End Sub End Sub Visual Basic程序设计教程499.6.1 Date函数和数据类型函数和数据类型1 判断判断DateDate数据类型数据类型Dim MydateDim Mydate As Date As Date 定义定义MyDateMyDate为日期型变量为日期型变量MydateMydate=#2005-11-14#=#2005-11-14#给给MyDateMyDate赋值赋值VBVB使用使用IsDateIsDate 函数指出一个表达式是否可以转换函数指出一个表达式是否可以转换成日期。使用格式为:成日期。使用格式为:IsDate(ExpressionIsDate(Expression)Visual Basic程序设计教程50 参数参数ExpressionExpression可以是一个日期表达式或字符串可以是一个日期表达式或字符串表达式。函数返回表达式。函数返回TrueTrue表示可以实现转换,表示可以实现转换,FalseFalse表示不能转换。例如:表示不能转换。例如:IsDate(#1:01:01 AM#)IsDate(#1:01:01 AM#)返回返回TrueTrueIsDateIsDate(1)1)返回返回FalseFalseVisual Basic程序设计教程512 2取当前日期信息取当前日期信息NowNow函数。返回系统当前的日期与时间。函数。返回系统当前的日期与时间。DateDate函数。返回包含系统日期的函数。返回包含系统日期的DateDate型数据。型数据。Day()Day()函数。返回一个月中的某一日。函数。返回一个月中的某一日。Weekday()Weekday()函数。返回一个整数,代表某个日期是一函数。返回一个整数,代表某个日期是一周中的第几天。周中的第几天。WeekdaynameWeekdayname()()函数。返回一个字符串,表示一星期函数。返回一个字符串,表示一星期中的某天。中的某天。Month()Month()函数。返回一年中函数。返回一年中1 1到到1212之间的某一月。之间的某一月。Year()Year()函数。返回包含表示年份的整数。函数。返回包含表示年份的整数。Visual Basic程序设计教程523 3设置系统日期设置系统日期使用使用datedate语句,格式为:语句,格式为:Date=NewDateDate=NewDate 赋值号的右边赋值号的右边NewDataNewData为新设置的日期数据。为新设置的日期数据。例如:例如:MydateMydate=#2005-11-14#=#2005-11-14#,Date=MydateDate=MydateVisual Basic程序设计教程534 4DateSerialDateSerial 函数函数 执行执行DateSerialDateSerial函数将返回包含指定的年、函数将返回包含指定的年、月、日的日期数据。使用格式为:月、日的日期数据。使用格式为:DateSerial(YearDateSerial(Year,Month,Day),Month,Day)5 5DateValueDateValue 函数函数 执行执行DatavalueDatavalue函数将返回一个日期值,使用函数将返回一个日期值,使用 格式为:格式为:DateValue(DateDateValue(Date)其中参数其中参数DateDate通常是字符串表达式或其他表达式。通常是字符串表达式或其他表达式。Visual Basic程序设计教程549.6.2 时间数据时间数据1 1取当前时间取当前时间 取当前时间使用取当前时间使用TimeTime函数,使用格式为:函数,使用格式为:TimeTime 例如:例如:Print TimePrint Time 输出当输出当前时间到窗体上与时间相关的函数还有前时间到窗体上与时间相关的函数还有Hour(Hour(小小时时)、MinuteMinute(分)、(分)、SecondSecond(秒)等。例如要(秒)等。例如要得到当前的时间的小时数,使用如下语句:得到当前的时间的小时数,使用如下语句:Print Hour(TimePrint Hour(Time)Visual Basic程序设计教程552 2设置时间设置时间 同样我们也可以对机器的时间进行设置,这时同样我们也可以对机器的时间进行设置,这时 TimeTime关键字位于赋值号的左边。例如直接给时关键字位于赋值号的左边。例如直接给时 间赋值:间赋值:Time=#12
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!