VB教程 (9).ppt_第1頁(yè)
VB教程 (9).ppt_第2頁(yè)
VB教程 (9).ppt_第3頁(yè)
VB教程 (9).ppt_第4頁(yè)
VB教程 (9).ppt_第5頁(yè)
已閱讀5頁(yè),還剩61頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第9章 處理字符串和日期時(shí)間,Visual Basic 程序設(shè)計(jì)教程,Visual Basic程序設(shè)計(jì)教程,2,本章主要介紹:字符類型和字符數(shù)組操作字符串查找和替換字符串處理日期和時(shí)間使用VB的日歷控件MonthView,Visual Basic程序設(shè)計(jì)教程,3,9.1 概述,在大量的應(yīng)用系統(tǒng)中,文本是表達(dá)和交互數(shù) 據(jù)的基本類型,而文本的計(jì)算機(jī)內(nèi)部表示就 是字符數(shù)據(jù)類型 學(xué)會(huì)運(yùn)用VB提供的內(nèi)部函數(shù),包括比較字符 串和搜索字符串,以及在字符串和其他數(shù)據(jù) 類型之間的轉(zhuǎn)換等,Visual Basic程序設(shè)計(jì)教程,4,往往應(yīng)用程序中需要有日期和時(shí)間的相關(guān)信息,這就涉及到程序如何表達(dá)以及如何使用 合適的

2、格式表達(dá)程序中對(duì)日期時(shí)間的處理要 求,Visual Basic程序設(shè)計(jì)教程,5,9.2 一個(gè)簡(jiǎn)單的字符加密處理程序, 【例9-1】一個(gè)簡(jiǎn)單的示例程序,把給出的字符進(jìn)行加密,然后再解密,程序界面如圖所示:,Visual Basic程序設(shè)計(jì)教程,6,Dim Str1 As String, Str2 As String Option Compare Text Private Sub CmdEncrypt_Click() Dim N As Byte, Count As Integer Text2.Text = N = Len(Text1.Text) For Count = 1 To N Str1 =

3、Mid(Text1.Text, Count, 1) If (Count Mod 2) = 0 Then Text2.Text = Text2.Text Asc函數(shù)對(duì)單個(gè)的字符計(jì)算,如果給出的字符多于一個(gè),它計(jì)算第一個(gè)字符的ASCII值。 例如:Asc(”a”) 得到的值為97 Chr是Asc的逆函數(shù),它將一個(gè)數(shù)值轉(zhuǎn)換為對(duì)應(yīng)的字符,例如 Chr(97)返回的就是字母a。Chr(13)和Chr(10)就分別代表回車 和換行。,Visual Basic程序設(shè)計(jì)教程,35,2轉(zhuǎn)換大小寫(xiě) 函數(shù)UCase和LCase分別將字符串的字母轉(zhuǎn)換為大寫(xiě)或小寫(xiě)。它們的使用方法比較簡(jiǎn)單: UCase(StringEx

4、press) LCase(StringExpress) 其中,StringExpress可以是字符串或者是字符串表達(dá)式。例如Str1 = Visual Basic 6,則: StrResult = UCase(Str1) StrResult = ”VISUAL BASIC 6” StrResult = LCase(Str1) StrResult = “visual basic 6”,Visual Basic程序設(shè)計(jì)教程,36,3IsNumberic和Val IsNumeric判斷一個(gè)字符串是否可以被完整地轉(zhuǎn)換為數(shù)字,例如: Print IsNumeric(“123.456”) 執(zhí)行后輸出為Tr

5、ue, Print IsNumeric(123A.456) 執(zhí)行后的輸出則為False。 其他的判斷類型的函數(shù)還有IsStrIsArray判斷變量是否為一個(gè)數(shù)組,IsEmpty 函數(shù)判斷變量是否已經(jīng)初始化,IsError函數(shù)判斷表達(dá)式是否為一個(gè)錯(cuò)誤值。IsNull函數(shù)判斷表達(dá)式是否不包含任何有效數(shù)據(jù) (Null),IsObject函數(shù)判斷標(biāo)示符是否表示對(duì)象變量等,它們返回的都是布爾值。,Visual Basic程序設(shè)計(jì)教程,37,Val的函數(shù)的使用格式為: Val(StringExpress) 把字符串表達(dá)式StringExpress轉(zhuǎn)換為數(shù)字,按以 下規(guī)則: (1)如果StringExpre

6、ss是由數(shù)符組成(包括小 數(shù)點(diǎn)),則返回一個(gè)轉(zhuǎn)換的數(shù)字值。 (2)如果StringExpress中的數(shù)符含有空格,忽 略空格。,Visual Basic程序設(shè)計(jì)教程,38,(3)如果StringExpress含有數(shù)字和字母等其他符號(hào),只轉(zhuǎn)換最前 面的數(shù)字部分。 例:MyValue = Val(“2457”) 返回 2457。 MyValue = Val(“ 2 45 7”) 返回 2457。 MyValue = Val(24 and 57) 返回 24。,Visual Basic程序設(shè)計(jì)教程,39,4Hex和Oct Hex和Oct是將一個(gè)數(shù)值型或字符型表達(dá)式轉(zhuǎn)換為十六進(jìn)制和八進(jìn)制數(shù)。例如: P

7、rint Hex(123) Print Oct(123) 分別輸出十六進(jìn)制數(shù)7B和八進(jìn)制數(shù)173,Visual Basic程序設(shè)計(jì)教程,40,9.4.6 其它類型轉(zhuǎn)換函數(shù),Visual Basic程序設(shè)計(jì)教程,41,9.4.7 格式化函數(shù)Format Format函數(shù)的使用格式為: Format(Expression, format) 其中,表達(dá)式Expression可以為任何有效表達(dá)式,而可選參數(shù)Format為指定的格式表達(dá)式。格式可以是VB預(yù)先定義的,也可以是用戶定義的。可使用VB預(yù)定義名字來(lái)指定這些格式,如表9.3所示。數(shù)字格式可以由用戶指定,如表9.4所示。格式名總是用雙引號(hào)括起來(lái)。,

8、Visual Basic程序設(shè)計(jì)教程,42,例: Num1 = 123456789.34567 Print Format(Num1, “Currency”) 顯示 ¥123,456,789.35 Print Format(0.154, Percent) 顯示15.4% Print Format(1, On/Off) 顯示 On Format(8315.4, “00000.00”) 顯示08315.40 Format(8315.4, “#.#”) 顯示8315.4 Format(8315.4,“#,#0.00”) 顯示8,315.40 Format(315.4,“$#0.00”) 顯示 $315

9、.40,Visual Basic程序設(shè)計(jì)教程,43,9.4.8 Len函數(shù)和Space函數(shù) 1Len函數(shù) 函數(shù)執(zhí)行后返回一個(gè)Long型值,指示字符串內(nèi)字符的數(shù)目,或是存儲(chǔ)一變量所需的字節(jié)數(shù)。使用格式為:Len(string | varname) 例: dim x as string x=“abcd” print len(x) 顯示4 dim x as integer x=12345 print len(x) 顯示2,Visual Basic程序設(shè)計(jì)教程,44,2Space函數(shù) 執(zhí)行Space函數(shù)返回特定數(shù)目空格。使用格式為: Space(number) 其中所必須的number參數(shù)為字符串中想

10、要的空格數(shù)。例如: Dim MyString MyString = Space(10) 返回 10 個(gè)空格的字符串。 MyString = Hello & Space(10) & World 將 10 個(gè)空格插入兩個(gè)字符串中間。,Visual Basic程序設(shè)計(jì)教程,45,9.5 查找和替換字符串,字處理器中,字符的查找和替換是基本功能。運(yùn)用前面介紹過(guò)的一些字符處理函數(shù),可以實(shí)現(xiàn)對(duì)字符串中的指定的子字符串進(jìn)行查找和替換操作,例如使用InStr,使用Mid函數(shù)和Mid語(yǔ)句等。VB還提供了一個(gè)函數(shù)Replace實(shí)現(xiàn)這個(gè)功能。 Replace函數(shù)返回一個(gè)字符串,該字符串中指定的子字符串已被替換成另一

11、子字符串,并且替換發(fā)生的次數(shù)也可以指定。使用格式為:,Visual Basic程序設(shè)計(jì)教程,46,Replace(Expression, Find, Replacewith, Start, Count) 函數(shù)參數(shù)Expression為字符串表達(dá)式,其中包含要被替換的子字符串。Find是指定要搜索的子字符串,Replacewith用來(lái)替換的子字符串。Start確定在Express子字符串搜索的開(kāi)始位置,默認(rèn)從1開(kāi)始。Count為進(jìn)行替換的次數(shù),默認(rèn)是1,它表明進(jìn)行所有可能的替換??梢愿鶕?jù)Replace函數(shù)的返回值判斷查找和替換操作的結(jié)果。返回值如表9.5所示。,Visual Basic程序設(shè)計(jì)教

12、程,47,【例9-4】用一個(gè)文本框作為簡(jiǎn)單的字編輯器,在其中輸入一段有關(guān)電 腦編程的文字,然后用 查找替換的方法,將文 本框中的“電腦”全部 替換為“計(jì)算機(jī)”。 程序界面如圖所示,Visual Basic程序設(shè)計(jì)教程,48,9.6 處理日期和時(shí)間,【例9-5】使用VB的函數(shù)處理日期和時(shí)間的示例。,Private Sub Form_Load() Label1.Caption = “VB的日期和時(shí)間格式” List1.Additem 當(dāng)前的日期和時(shí)間: & Now List1.Additem 今天是: & Date List1.Additem 今天是: & Day(Date) & 號(hào) List1.

13、Additem 今天是:一周的第 & Weekday(Date) & 天 List1.Additem 今天是: & Weekdayname(Weekday(Date) List1.Additem 本月是: & Monthname(Month(Date) List1.Additem 今年是: & Year(Date) End Sub,Visual Basic程序設(shè)計(jì)教程,49,9.6.1 Date函數(shù)和數(shù)據(jù)類型 1 判斷Date數(shù)據(jù)類型 Dim Mydate As Date 定義MyDate為日期型變量 Mydate = #2005-11-14# 給MyDate賦值 VB使用IsDate 函數(shù)指

14、出一個(gè)表達(dá)式是否可以轉(zhuǎn)換 成日期。使用格式為: IsDate(Expression),Visual Basic程序設(shè)計(jì)教程,50,參數(shù)Expression可以是一個(gè)日期表達(dá)式或字符串表達(dá)式。函數(shù)返回True表示可以實(shí)現(xiàn)轉(zhuǎn)換,F(xiàn)alse表示不能轉(zhuǎn)換。例如: IsDate(#1:01:01 AM#) 返回True IsDate(1) 返回False,Visual Basic程序設(shè)計(jì)教程,51,2取當(dāng)前日期信息 Now函數(shù)。返回系統(tǒng)當(dāng)前的日期與時(shí)間。 Date函數(shù)。返回包含系統(tǒng)日期的Date型數(shù)據(jù)。 Day () 函數(shù)。返回一個(gè)月中的某一日。 Weekday()函數(shù)。返回一個(gè)整數(shù),代表某個(gè)日期是一周

15、中的第幾天。 Weekdayname()函數(shù)。返回一個(gè)字符串,表示一星期中的某天。 Month()函數(shù)。返回一年中1到12之間的某一月。 Year()函數(shù)。返回包含表示年份的整數(shù)。,Visual Basic程序設(shè)計(jì)教程,52,3設(shè)置系統(tǒng)日期 使用date語(yǔ)句,格式為: Date = NewDate 賦值號(hào)的右邊NewData為新設(shè)置的日期數(shù)據(jù)。 例如: Mydate = #2005-11-14#, Date = Mydate,Visual Basic程序設(shè)計(jì)教程,53,4DateSerial 函數(shù) 執(zhí)行DateSerial函數(shù)將返回包含指定的年、 月、日的日期數(shù)據(jù)。使用格式為: DateSer

16、ial(Year, Month, Day) 5DateValue 函數(shù) 執(zhí)行Datavalue函數(shù)將返回一個(gè)日期值,使用 格式為: DateValue(Date) 其中參數(shù)Date通常是字符串表達(dá)式或其他表達(dá)式。,Visual Basic程序設(shè)計(jì)教程,54,9.6.2 時(shí)間數(shù)據(jù) 1取當(dāng)前時(shí)間 取當(dāng)前時(shí)間使用Time函數(shù),使用格式為:Time 例如: Print Time 輸出當(dāng)前時(shí)間到窗體上與時(shí)間相關(guān)的函數(shù)還有Hour(小時(shí))、Minute(分)、Second(秒)等。例如要得到當(dāng)前的時(shí)間的小時(shí)數(shù),使用如下語(yǔ)句: Print Hour(Time),Visual Basic程序設(shè)計(jì)教程,55,2

17、設(shè)置時(shí)間 同樣我們也可以對(duì)機(jī)器的時(shí)間進(jìn)行設(shè)置,這時(shí) Time關(guān)鍵字位于賦值號(hào)的左邊。例如直接給時(shí) 間賦值: Time = #12:0:0# 也可以使用變量給系統(tǒng)時(shí)間賦值: Mytime = #4:35:17 PM# 指定一個(gè)時(shí)間 Time = Mytime,Visual Basic程序設(shè)計(jì)教程,56,3TimeSerial 函數(shù) 使用格式為:TimeSerial(Hour, Minute, Second) 函數(shù)執(zhí)行后,返回一個(gè)Date型的數(shù)據(jù)。其中參數(shù)Hour、Minute、Second分別為時(shí)、分、秒,正常取值范圍分別為 0 (12:00 AM. )23 (11:00 PM)、059、059

18、,或者為任何可以被接受的表達(dá)式。 例如:TimeSerial(12 - 6, -15, 0),Visual Basic程序設(shè)計(jì)教程,57,4TimeValue 函數(shù) TimeValue函數(shù)返回一個(gè)包含時(shí)間的數(shù)據(jù)(Date類型),使用格式為:TimeValue(Time) 其中Time 參數(shù)通常是一個(gè)字符串表達(dá)式或其他表達(dá)式,表示 0:00:00 (12:00:00 A.M.) 到 23:59:59 (11:59:59 P.M.) 之間的時(shí)刻。如果 Time 包含 Null,則返回 Null。,Visual Basic程序設(shè)計(jì)教程,58,9.6.3 日期的計(jì)算 日期的計(jì)算最直接的方法是通過(guò)算術(shù)表

19、達(dá)式進(jìn)行計(jì)算。例如下列程序代碼給出了當(dāng)前日前前1天是哪一天: Dim Date1 As Date Date1 = Date - 100 Print Date1 除了使用算術(shù)表達(dá)式,VB提供了進(jìn)行日期計(jì)算三個(gè)函數(shù)DateAdd、DateDiff和DatePart。,Visual Basic程序設(shè)計(jì)教程,59,9.6.4 格式化日期和時(shí)間 1FormatDateTime函數(shù) 函數(shù)FormatDateTime將返回一個(gè)日期或時(shí)間格式的表達(dá)式。使用格式為: FormatDateTime(Date,NamedFormat) 其中參數(shù)Date是必需的,它給出要被格式化的日期表達(dá)式。NamedFormat是

20、可選的,使用數(shù)字值表示日期/時(shí)間所使用的格式。,Visual Basic程序設(shè)計(jì)教程,60,Visual Basic程序設(shè)計(jì)教程,61,【例9-7】使用FormatDateTime函數(shù)給出日期和時(shí)間的不同格式。程序代碼如下。 Private Sub Form_Load() Dim MyDate As Date Show MyDate = FormatDateTime(Now, vbGeneralDate) Print Print 默認(rèn)的日期時(shí)間格式: & MyDate Print 長(zhǎng) 日 期 格 式: & FormatDateTime(Now,vbLongDate) Print 短 日 期 格

21、 式: & FormatDateTime(Now, vbShortDate) Print 長(zhǎng) 時(shí) 間 格 式: & FormatDateTime(Now, vbLongTime) Print 短 時(shí) 間 格 式: & FormatDateTime(Now, vbShortTime) End Sub,Visual Basic程序設(shè)計(jì)教程,62,2Format函數(shù)格式化日期時(shí)間 Format( Express,F(xiàn)ormatType) 其中,Express可以是Date型的數(shù)據(jù)或表達(dá)式,F(xiàn)ormatType使用表9.9中的設(shè)置值,例如yyyy代表4位年份,mm代表兩位的月份,m使用一位的月份(如果超過(guò)一位,如11月12月,按實(shí)際輸入),使用d表示日,dddd表示星期, hh表示時(shí),nn表示分,ss表示秒等。也可以使用VB預(yù)定義的格式名(如表9.6所示)。,Visual Basic程序設(shè)計(jì)教程,63,【例9-8】使用Format函數(shù)格式化日期和時(shí)間的例子。執(zhí)行程序后的顯示如圖9.8所示。程序代碼如下。 Private Sub Form_Load() Dim MyDate As Date Show MyDate = F

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論