您好,欢迎访问三七文档
大学计算机基础教程TaiYuanUniversityofTechnology第9章处理字符串和日期时间VisualBasic程序设计教程VisualBasic程序设计教程2本章主要介绍:字符类型和字符数组操作字符串查找和替换字符串处理日期和时间使用VB的日历控件MonthViewVisualBasic程序设计教程3·在大量的应用系统中,文本是表达和交互数据的基本类型,而文本的计算机内部表示就是字符数据类型·学会运用VB提供的内部函数,包括比较字符串和搜索字符串,以及在字符串和其他数据类型之间的转换等VisualBasic程序设计教程4·往往应用程序中需要有日期和时间的相关信息,这就涉及到程序如何表达以及如何使用合适的格式表达程序中对日期时间的处理要求VisualBasic程序设计教程5·【例9-1】一个简单的示例程序,把给出的字符进行加密,然后再解密,程序界面如图所示:VisualBasic程序设计教程6DimStr1AsString,Str2AsStringOptionCompareTextPrivateSubCmdEncrypt_Click()DimNAsByte,CountAsIntegerText2.Text=N=Len(Text1.Text)ForCount=1ToNStr1=Mid(Text1.Text,Count,1)If(CountMod2)=0ThenText2.Text=Text2.Text&ChrW(AscW(Str1)+2)ElseText2.Text=Text2.Text&ChrW(AscW(Str1)+1)EndIfNextEndSubPrivateSubForm_Load()Label1.Caption=请输入:Label2.Caption=加密后输出:Label3.Caption=解密后输出Text1.Text=Text2.Text=Text3.Text=EndSubVisualBasic程序设计教程7PrivateSubCmdUncoil_Click()DimNAsByte,CountAsIntegerText3.Text=N=Len(Text2.Text)ForCount=1ToNStr1=Mid(Text2.Text,Count,1)IfCountMod2=0ThenText3.Text=Text3.Text&ChrW(AscW(Str1)-2)ElseText3.Text=Text3.Text&ChrW(AscW(Str1)-1)EndIfNextEndSubVisualBasic程序设计教程8本节在小结前述章节的有关字符数据类型的基础上,进一步介绍有关字符运算、字符数组和实现。各种字符操作和字符转换、类型转换的VB函数。VisualBasic程序设计教程99.3.1字符和字符串1.字符数据类型·VB的字符类型数据支持两种格式,一种是定长,另一种是不定长。如:DimStr1AsStringDimStr2AsString*长度数值·在VB中,变长字符串最多可包含大约20亿(2^31)个字符,而定长字符串可包含1到大约64K(2^16)个字符。VisualBasic程序设计教程102.字符连接运算·VB使用符号“&”和“+”连接字符串形成更大的字符串。(1)如果连接运算符的两边都是字符型数据,这两个符号都可以使用。(2)如果把不同类型的数据连接为字符串,使用连接符“&”。建议使用“&”连接符,可以避免出现类型不匹配的错误。例:Str1=“Hell”+“World”Str1中的字符为“HelloWorld”Str1=”Hello”+2‘运行时产生,类型不匹配错误,应该使用&代替+VisualBasic程序设计教程119.3.2比较字符1.使用比较运算符·理解一个字符“大于”、“小于”或者“等于”的含义,是考虑字符在字符表中位置后决定的。它们按照ASCII码对字符进行排序,然后比较它们的代码值的大小决定比较结果。VisualBasic程序设计教程12DimStr1AsString,Str2AsStringStr1=A:Str2=BPrintStr1=Str2‘比较结果为False,因为字符“A”和“B”不相等PrintStr1=Str2‘比较结果为True,因为字符“A”小于“B”成立Str1=abc:Srt2=VB6PrintStr1Str2‘比较结果为True,因为“abc”“VB6”成立PrintStr1Str2‘比较结果为False,因为“abc”“VB6”不成立VisualBasic程序设计教程132.StrComp函数·函数StrComp用来比较两个字符串,并返回比较结果。使用格式为:StrComp(String1,String2[,CompareType])·比较结果的返回值如下:条件StrComp返回值string1小于string2-1string1等于string20string1大于string21string1或string2为NullNullVisualBasic程序设计教程14CompareType参数意义如下表所示:常数值描述vbUseCompareOption-1使用OptionCompare语句设置执行一个比较vbBinaryCompare0执行一个二进制比较。vbTextCompare1执行一个按照原文的比较。vbDatabaseCompare2仅适用于MicrosoftAccess,执行一个基于数据库信息的比较。VisualBasic程序设计教程159.3.3String函数和Str函数1.String函数·使用格式:String(Number,Character)·函数执行后按创建长度返回重复字符的字符串,其中,Number给出所创建的字符串长度。参数Character是一个字符(或Ascii码)或字符串表达式,但只使用它的第一个字符创建新的字符串,如果Character包含了Null就返回Null。VisualBasic程序设计教程16·例:Dimstr1asstring,str2asstring,str3Str1=String(5,“*”)‘返回*****。Str2=String(5,42)'ASCII码42的字符为*,返回*****。Str3=String(10,“ABC”+Null)‘返回Null。VisualBasic程序设计教程172.Str函数·函数Str把一个数值转换为Variant(String)类型。它的使用格式为:Str(Number)·例:Str1=Str$(123.5)Str2=Str(-123.5)PrintStr1,Str2‘输出123.5,-123.5注意字符串前有一个空格和符号位VisualBasic程序设计教程189.3.4字符数组字符数组就是数组中的元素都是字符串的数组,使用String定义字符数组。有关字符串数组操作的三个函数如下:1.Join函数·Join函数连接某个数组中的多个子字符串而创建一个新的字符串。函数格式为:Join(List[,Delimiter])VisualBasic程序设计教程19其中参数List指出被连接的字符数组Delimiter是可选参数,在返回字符串中用于分隔子字符串的字符。默认使用空格来分隔子字符串。如果Delimiter是零长度字符串,所有元素项都连接在一起,中间没有分隔符。VisualBasic程序设计教程20·例如:DimStrA(2)AsString,Str1AsStringStrA(0)=欢迎来到StrA(1)=VisualStrA(2)=Basic6Str1=Join(StrA)‘连接字符数组StrA中三个字符串VisualBasic程序设计教程21·2.Split函数·给定一个字符串,可以使用Split函数创建一个一维数组,它包含指定数目的子字符串。函数格式为:Split(StringExpress[,Delimiter[,Count[,CompareType]]])StringExpress必需参数,字符串表达式。如果表达式的长度为零即为””,Split返回一个空数组,即没有元素和数据的数组Delimiter可选参数,标识子字符串边界字符。默认空格字符为分隔符。如果该参数是空字符“”,则返回数组仅包含一个元素,即StringExpress字符串Count可选参数,指定返回的子字符串数,–1表示返回所有的子字符串CompareType可选参数,用数字值表示判别子字符串时使用的比较方式。意义同表9.1VisualBasic程序设计教程22【例9-2】使用Split函数。程序执行后的显示如图所示。程序代码如下:PrivateSubForm_Load()Dimx()AsStringDimyAsString,nAsIntegerShowy=WelcomeToVisualBasic6!x=Split(y)Forn=LBound(x)ToUBound(x)Print&x(n)NextEndSubVisualBasic程序设计教程233.Filter函数。从一个已知数组中搜索指定的字符串,可以使用Filter函数,ilter函数的格式为:Filter(StringsArray,Value[,Include[,CompareType]])StringsArray必需参数,被执行搜索的一维字符串数组Value必需参数,要搜索的字符串Include可选参数,Boolean值。True返回的是包含Value子字符串的数组子集。False则返回的是不包含Value子字符串的数组子集CompareType可选的数字值,表示所使用的比较类型,意义同表9.1VisualBasic程序设计教程24【例9-3】请从数组A中选出包括“VB”和不包括“VB”的元素。程序执行后的显示如图所示。VisualBasic程序设计教程25PrivateSubForm_Load()ShowDimA(6)AsString,B()AsString,C()AsStringA(0)=C:A(1)=VB6:A(2)=C++A(3)=Jave:A(4)=VB5:A(5)=MS.NetPrint数组A中所有的字符串元素有:CallPrt(A)B()=Filter(A,VB)Print数组A中包含有VB字符的元素有:CallPrt(B)C()=Filter(A,VB,False)Print数组A中不包含VB字符的元素有:CallPrt(C)EndSubPrivateSubPrt(m()AsString)Forn=0ToUBound(m)Print&m(n)NextPrintEndSubVisualBasic程序设计教程26本节给出VB处理字符串的常用操作,如取单个字符、取其中指定的字符、去除字符串中的空格和转换函数。VisualBasic程序设计教程279.4.1Like运算符·比较运算符Like用于比较字符串。Like返回一个逻辑值:True表示被比较的两个字符串相匹配,False表示不匹配。使用格式为:Result=String1LikePattern·VB根据模式匹配可以使用通配符来匹配字符串。也就是说使用Windows中的?、*和#三个匹配符:?表示任何单一字符,*表示零个或多个字VisualBasic程序设计教程28*表示零个或多个字符,#表示任何一个数字(0–9)。例如有Str1=“HelloWorld”,则表达式Str1Like“HelloWorld”Str1Like“Hello*”Str1Like“Hello??????”返回的结果为都为True。VisualBasic程序设计教程299.4.2使用Mid操作字符串中的字符操作字符串中的单个或者多个字符,一般情况下使用Mid函数或者Mid语句。关键字Mid在VB中既是函数也是语句。1.Mid函数Mid函数的格式如下:Mid(String1,Start[,Length])参数String1是被操作的字符串,Start为一个数字,指示从String
本文标题:VB教程(9)
链接地址:https://www.777doc.com/doc-2854074 .html