VB程序設(shè)計(jì)第七章課件_第1頁(yè)
VB程序設(shè)計(jì)第七章課件_第2頁(yè)
VB程序設(shè)計(jì)第七章課件_第3頁(yè)
VB程序設(shè)計(jì)第七章課件_第4頁(yè)
VB程序設(shè)計(jì)第七章課件_第5頁(yè)
已閱讀5頁(yè),還剩47頁(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、第七章文件處理第2頁(yè)本章目標(biāo)掌握Visual Basic語(yǔ)言中的關(guān)于文件的創(chuàng)建、打開(kāi)、調(diào)用、關(guān)閉等基本使用方法,了解文件使用的各種形式能夠使用VB提供的文件系統(tǒng)控件方便地利用文件系統(tǒng)。第3頁(yè)任務(wù)1登錄對(duì)話框設(shè)計(jì)2(文件操作)生成一個(gè)登錄對(duì)話框,等待用戶輸入用戶名和密碼,按下“登錄”按鈕,檢查是否為有效用戶名和密碼,并給予響應(yīng);如果按下“注冊(cè)”按鈕,將該窗口中兩個(gè)文本框中的內(nèi)容與所有有效用戶名和密碼對(duì)照,如果沒(méi)有相同的用戶名允許注冊(cè),否則提示用戶重新輸入用戶名和密碼。第4頁(yè)任務(wù)分析本次任務(wù)的目標(biāo)是使用戶輸入的字符串與文件中的記錄比較相等確認(rèn)為系統(tǒng)用戶,否則報(bào)錯(cuò)。如果注冊(cè),將用戶輸入的字符串寫(xiě)入文

2、件。使用何種文件打開(kāi)、讀取、寫(xiě)入和關(guān)閉。文件的內(nèi)容為若干組用戶名和密碼,系統(tǒng)如何確認(rèn)各組用戶名和密碼的分界。用戶輸入的用戶名和密碼如何與文件中的內(nèi)容比較。如何確認(rèn)比較的結(jié)果以及注冊(cè)的新用戶信息要如何寫(xiě)入文件。第5頁(yè)任務(wù)分析該任務(wù)我們要研究以下內(nèi)容文件的類型各類文件的操作方法第6頁(yè)任務(wù)分析文件的類型文件的概念文件是存儲(chǔ)在外部介質(zhì)上的數(shù)據(jù)或信息的集合,用來(lái)永久保存大量的數(shù)據(jù)。 數(shù)據(jù)必須以某種特定的方式存放,這種特定的方式稱為文件結(jié)構(gòu),VB的文件由記錄組成,記錄由字段組成,字段由字符組成。第7頁(yè)任務(wù)分析文件的類型根據(jù)數(shù)據(jù)訪問(wèn)方式文件可分為順序訪問(wèn)、隨機(jī)訪問(wèn)和二進(jìn)制訪問(wèn)相應(yīng)的文件可分為順序文件、隨機(jī)文

3、件和二進(jìn)制文件第8頁(yè)任務(wù)分析各類文件的操作方法在VB中無(wú)論是什么類型的文件,其處理步驟一般都按照以下三個(gè)步驟進(jìn)行打開(kāi)(或創(chuàng)建)文件根據(jù)打開(kāi)文件的模式對(duì)文件進(jìn)行讀寫(xiě)操作由內(nèi)存到外設(shè)的傳輸叫做輸出或?qū)?,而外設(shè)到內(nèi)存的傳輸叫做輸入或讀。關(guān)閉文件第9頁(yè)任務(wù)分析各類文件的操作方法順序文件是最常用的一種文件類型,數(shù)據(jù)以字符的形式存儲(chǔ)。訪問(wèn)規(guī)則簡(jiǎn)單,按順序進(jìn)行。寫(xiě)順序文件時(shí)各種類型的數(shù)據(jù)自動(dòng)轉(zhuǎn)換成字符串后寫(xiě)入文件,讀文件時(shí)既可按原來(lái)的數(shù)據(jù)類型讀,也可按文本文件來(lái)一行一行、一個(gè)字符一個(gè)字符地讀。在順序文件中查找數(shù)據(jù)比較麻煩,需要按順序逐一查找,而且不能同時(shí)對(duì)文件進(jìn)行讀寫(xiě)操作。第10頁(yè)任務(wù)分析各類文件的操作方法

4、順序文件打開(kāi)文件語(yǔ)法:Open 文件名 ForInput Output Append Lock As #filenumber Len=BuffersizeInput:順序輸入模式,以順序方式從文件中讀取數(shù)據(jù)。Output:順序輸出模式,以順序方式向文件中寫(xiě)入數(shù)據(jù)。Append:順序輸出模式。將文件指針設(shè)置在文件的結(jié)尾,所有寫(xiě)入的內(nèi)容就添加在文件原有內(nèi)容之后,Print#或Write#語(yǔ)句可以用于這種操作。第11頁(yè)任務(wù)分析各類文件的操作方法順序文件注意:以Input方式打開(kāi)順序文件時(shí),該文件必須是已經(jīng)存在的文件,否則會(huì)產(chǎn)生一個(gè)錯(cuò)誤。但以O(shè)utput或Append模式打開(kāi)一個(gè)不存在的文件時(shí),Ope

5、n語(yǔ)句可以先創(chuàng)建文件再打開(kāi)。第12頁(yè)任務(wù)分析各類文件的操作方法順序文件以三種模式任意一種打開(kāi)文件后,進(jìn)行其他類型的操作需要重新打開(kāi)這類文件時(shí),要先關(guān)閉該文件。例如:以對(duì)Input方式打開(kāi)的文件進(jìn)行修改,若要保存修改后的內(nèi)容,應(yīng)先關(guān)閉該文件,再以O(shè)utput模式打開(kāi)并把文件內(nèi)容寫(xiě)回到文件中。第13頁(yè)任務(wù)分析各類文件的操作方法順序文件讀操作Input #語(yǔ)句語(yǔ)法:Input #filenumber varlist功能:返回從打開(kāi)的順序文件中讀出數(shù)據(jù)并將數(shù)據(jù)復(fù)制給變量。第14頁(yè)任務(wù)分析各類文件的操作方法順序文件Input #語(yǔ)句只能讀取以Input或Binary方式打開(kāi)的文件,讀出數(shù)據(jù)時(shí),不必經(jīng)過(guò)修

6、改就可直接將標(biāo)準(zhǔn)的字符串或數(shù)值數(shù)據(jù)復(fù)制給變量,輸入數(shù)據(jù)中的雙引號(hào)(” ”)將被忽略。第15頁(yè)任務(wù)分析各類文件的操作方法順序文件Line Input 語(yǔ)句語(yǔ)法:Line input #Filenamber Varname 功能:返回從打開(kāi)的順序文件中讀出一行并分配給字符串變量。第16頁(yè)任務(wù)分析各類文件的操作方法順序文件寫(xiě)操作Print #語(yǔ)句語(yǔ)法:Print #Filenumber,Outputlist功能:將格式化顯示的數(shù)據(jù)寫(xiě)入順序文件中。Filenumber:必要的參數(shù),任何有效的文件號(hào)。Outputlist:可選的參數(shù)。表達(dá)式或是要打印的表達(dá)式列表。第17頁(yè)任務(wù)分析各類文件的操作方法順序文

7、件Write #語(yǔ)句語(yǔ)法:Write #Filenamber,Outputlist功能:將數(shù)據(jù)寫(xiě)入順序文件。第18頁(yè)任務(wù)分析各類文件的操作方法順序文件Print #和Write #的區(qū)別是:Print #寫(xiě)入的字符型數(shù)據(jù)不在字符串兩端放置引號(hào),而Write #在字符串兩端放置引號(hào)并且自動(dòng)用逗號(hào)分隔每個(gè)表達(dá)式。在最后一個(gè)字符寫(xiě)入文件后,插入一個(gè)新行的字符即回車換行符(Chr(13)+Chr(10)。第19頁(yè)任務(wù)分析各類文件的操作方法順序文件關(guān)閉文件語(yǔ)法:Close #FilenumberlistFilenumberlist:可選的參數(shù),表示為文件號(hào)的列表,如果省略,將關(guān)閉Open語(yǔ)句打開(kāi)的所有活

8、動(dòng)文件。Close語(yǔ)句用于以O(shè)utput和Append模式打開(kāi)的文件時(shí),語(yǔ)句執(zhí)行后將文件緩沖區(qū)的內(nèi)容全部寫(xiě)入文件并釋放緩沖區(qū)所占用的內(nèi)存。第20頁(yè)任務(wù)分析各類文件的操作方法隨機(jī)文件是由一條條記錄所組成的集合。在隨機(jī)文件中,每條記錄的長(zhǎng)度都是完全相同的,并且都有一個(gè)記錄號(hào),因而可以根據(jù)記錄號(hào)計(jì)算出記錄在文件中的存儲(chǔ)位置,然后按照記錄號(hào)直接讀寫(xiě),也就是可以隨機(jī)訪問(wèn),而不必像順序文件那樣要按順序讀寫(xiě)。需要注意的是,記錄與記錄之間沒(méi)有特殊的分隔符號(hào),也沒(méi)有記錄號(hào)。第21頁(yè)任務(wù)分析各類文件的操作方法隨機(jī)文件打開(kāi)文件語(yǔ)法:Open 文件名 For RandomAccess access Lock As#

9、Filenumber Len=ReclengthRandom:隨機(jī)方式讀取,按記錄號(hào)直接讀取。access:可選的參數(shù),打開(kāi)文件所允許的操作,有3種方式,只讀(read)、可寫(xiě)(write)和讀寫(xiě)均可(readwrite)。第22頁(yè)任務(wù)分析各類文件的操作方法隨機(jī)文件讀操作語(yǔ)法:Get #Filenumber,Recnumber,Varname功能:把記錄復(fù)制到變量中。第23頁(yè)任務(wù)分析各類文件的操作方法隨機(jī)文件寫(xiě)操作語(yǔ)法:Put#Filenumber, Recnumber,Varname功能:把記錄添加或替換到隨機(jī)文件中。第24頁(yè)任務(wù)分析各類文件的操作方法隨機(jī)文件關(guān)閉文件語(yǔ)法:Close #Fi

10、lenumberlistFilenumberlist:可選的參數(shù),表示為文件號(hào)的列表,如果省略,將關(guān)閉Open語(yǔ)句打開(kāi)的所有活動(dòng)文件。第25頁(yè)任務(wù)分析各類文件的操作方法二進(jìn)制文件是二進(jìn)制數(shù)據(jù)的集合,它存儲(chǔ)空間的利用率高,執(zhí)行不太方便,工作量較大。二進(jìn)制文件的訪問(wèn)與隨機(jī)文件的訪問(wèn)相似,不同的是二進(jìn)制文件以字節(jié)為單位進(jìn)行讀寫(xiě),而隨機(jī)文件以記錄為單位進(jìn)行讀寫(xiě)。如果把二進(jìn)制文件中的每一個(gè)字節(jié)看做是一條記錄,則二進(jìn)制文件就成了隨機(jī)文件。第26頁(yè)任務(wù)分析各類文件的操作方法二進(jìn)制文件打開(kāi)文件語(yǔ)法:Open 文件名 For Binary As #filenumber文件名:必要的參數(shù)。任何有效的文件名。Bin

11、ary:打開(kāi)文件的方式為二進(jìn)制方式。二進(jìn)制文件一經(jīng)打開(kāi),就可以同時(shí)進(jìn)行讀寫(xiě)操作,但一次讀寫(xiě)的數(shù)據(jù)是以字節(jié)為單位的,任何類型的文件都可以以二進(jìn)制的形式打開(kāi),因此二進(jìn)制文件能提供對(duì)文件的完全控制。第27頁(yè)任務(wù)分析各類文件的操作方法二進(jìn)制文件讀操作語(yǔ)法:Get #filenumber,renumber,varname其參數(shù)同隨機(jī)文件。第28頁(yè)任務(wù)分析各類文件的操作方法二進(jìn)制文件寫(xiě)操作語(yǔ)法:Put#filenumber, renumber,varname其參數(shù)同隨機(jī)文件。Put語(yǔ)句將變量的內(nèi)容寫(xiě)入到所打開(kāi)的文件的指定位置,一次寫(xiě)入的長(zhǎng)度等于變量的長(zhǎng)度。如果忽略位置參數(shù),則表示從文件指針?biāo)傅奈恢瞄_(kāi)始寫(xiě)

12、入數(shù)據(jù),寫(xiě)入后文件指針會(huì)自動(dòng)后移。文件剛打開(kāi)時(shí)指向第一個(gè)字節(jié)。第29頁(yè)任務(wù)分析各類文件的操作方法二進(jìn)制文件關(guān)閉文件語(yǔ)法:Close #filenumber其參數(shù)同隨機(jī)文件。第30頁(yè)任務(wù)實(shí)施創(chuàng)建新工程從工具箱中選擇控件拖入窗體設(shè)置窗體及控件的屬性對(duì)象控件名屬性名屬性值ConmmandCommand1Caption注冊(cè)CmdokCaption登錄第31頁(yè)任務(wù)實(shí)施在代碼窗口編寫(xiě)事件代碼并保存、運(yùn)行源代碼Private Type record 定義自定義數(shù)據(jù)類型usename As String * 10 用戶名字符的最大長(zhǎng)度為10usemima As String * 10 密碼字符的最大長(zhǎng)度為10

13、End TypeDim myrecord As record 定義一個(gè)自定義類型的變量 Open App.Path & mima.txt For Random As #1 Len = Len(myrecord)打開(kāi)文件 n = LOF(1) / Len(myrecord)求記錄總個(gè)數(shù) For i = 1 To n Get #1, i, myrecord 讀取第i條記錄 If txtUserName = Trim(myrecord.usename) And txtPassword = Trim(myrecord.usemima) Then 和用戶輸入文本框的內(nèi)容比較 MsgBox 正確的用戶名和

14、密碼,歡迎您!, , 登錄 Me.Hide Exit For 如果在某個(gè)記錄比較成功,從循環(huán)中跳出 Close #1關(guān)閉文件 End If Next i 第32頁(yè)任務(wù)設(shè)計(jì)完成效果第33頁(yè)任務(wù)2文本和圖片瀏覽器的設(shè)計(jì)(文件系統(tǒng)控件)在窗體上選中驅(qū)動(dòng)器、目錄以及文件夾下的某個(gè)圖片文件,右端會(huì)顯示該圖片。如果選擇的是某個(gè)文本文件就會(huì)顯示文本文件內(nèi)的內(nèi)容。 第34頁(yè)任務(wù)分析該任務(wù)我們要解決以下問(wèn)題如何找到要顯示或?yàn)g覽的文件。文本框和圖像框在同一位置顯示,如何在某種條件下顯示其中之一。以何種條件判斷該顯示文本框和圖像框中的哪一個(gè)。顯示文本文件和圖片文件的方法。第35頁(yè)任務(wù)分析該任務(wù)我們要研究以下幾項(xiàng)內(nèi)容

15、驅(qū)動(dòng)器列表框(DriveListBox)目錄列表框(DirListBox)文件列表框(FileListBox)第36頁(yè)任務(wù)分析驅(qū)動(dòng)器列表框(DriveListBox)驅(qū)動(dòng)器列表框是一個(gè)下拉式列表框,是一個(gè)包含有效驅(qū)動(dòng)器的列表控件,默認(rèn)狀態(tài)下顯示當(dāng)前驅(qū)動(dòng)器名。運(yùn)行時(shí),該控件獲得焦點(diǎn)時(shí),可輸入任何有效的驅(qū)動(dòng)器標(biāo)識(shí)符或者在DriveListBox控件的列表中選擇一個(gè)有效的磁盤(pán)驅(qū)動(dòng)器,若從中選定驅(qū)動(dòng)器,該驅(qū)動(dòng)器就出現(xiàn)在列表框的頂端。每當(dāng)選擇了新的驅(qū)動(dòng)器后將觸發(fā)一個(gè)Change事件。第37頁(yè)任務(wù)分析DriveListBox控件的主要屬性Drive屬性語(yǔ)法:對(duì)象名. Drive =drive 功能:用于在

16、運(yùn)行時(shí)設(shè)置或返回所選擇的驅(qū)動(dòng)器,默認(rèn)值為當(dāng)前驅(qū)動(dòng)器,設(shè)計(jì)時(shí)不可用。第38頁(yè)任務(wù)分析List屬性語(yǔ)法:對(duì)象名. List(index) =string功能:用于設(shè)置或返回控件的列表部分的項(xiàng)目,列表是一個(gè)字符串?dāng)?shù)組,數(shù)組的每一項(xiàng)都是一個(gè)列表項(xiàng)目,在運(yùn)行時(shí)是只讀的。第39頁(yè)任務(wù)分析DriveListBox控件的主要事件Change事件:用于改變所選擇的驅(qū)動(dòng)器,該事件在選擇一個(gè)新的驅(qū)動(dòng)器或通過(guò)代碼改變Drive屬性的的設(shè)置時(shí)發(fā)生。Private sub 對(duì)象名_Change(index As Integer)Index:一個(gè)整數(shù),用來(lái)惟一地標(biāo)識(shí)一個(gè)在控件數(shù)組中的控件。第40頁(yè)任務(wù)分析DriveList

17、Box控件的主要事件Change事件:用于改變所選擇的驅(qū)動(dòng)器,該事件在選擇一個(gè)新的驅(qū)動(dòng)器或通過(guò)代碼改變Drive屬性的的設(shè)置時(shí)發(fā)生。Private sub 對(duì)象名_Change(index As Integer)Index:一個(gè)整數(shù),用來(lái)惟一地標(biāo)識(shí)一個(gè)在控件數(shù)組中的控件。第41頁(yè)任務(wù)分析目錄列表框(DirListBox)目錄列表框可以顯示指定驅(qū)動(dòng)器上的目錄結(jié)構(gòu),一般從根目錄開(kāi)始顯示用戶系統(tǒng)的當(dāng)前驅(qū)動(dòng)器目錄結(jié)構(gòu)。當(dāng)前目錄名被突出顯示,而且顯示的目錄是按目錄層次依次縮進(jìn),在目錄列表框中,當(dāng)前目錄的子目錄也縮進(jìn)顯示。在列表框中上、下移動(dòng)時(shí),將依次突出顯示每個(gè)目錄項(xiàng)第42頁(yè)任務(wù)分析DirListBox

18、控件的主要屬性List屬性語(yǔ)法:對(duì)象名. List(index) =string 功能:用于設(shè)置或返回控件的列表部分的項(xiàng)目,列表是一個(gè)字符串?dāng)?shù)組,數(shù)組的每一項(xiàng)都是一個(gè)列表項(xiàng)目,在運(yùn)行時(shí)是只讀的。第43頁(yè)任務(wù)分析ListIndex屬性語(yǔ)法:對(duì)象名. ListIndex =index功能:用于在設(shè)置或返回控件中當(dāng)前選擇項(xiàng)目的索引,在設(shè)計(jì)時(shí)不可用。index:數(shù)值表達(dá)式,指定當(dāng)前項(xiàng)目的索引號(hào)。注意:DirListBox和DriveListBox不同的是,DirListBox并不在操作系統(tǒng)級(jí)設(shè)置當(dāng)前目錄,而只是突出顯示目錄并將其ListIndex設(shè)置為-1。第44頁(yè)任務(wù)分析Path屬性語(yǔ)法:對(duì)象名.P

19、ath=Pathname功能:用于返回或設(shè)置當(dāng)前路徑。在設(shè)計(jì)時(shí)不可用。Pathname:一個(gè)用來(lái)計(jì)算路徑名的字符串表達(dá)式。注意:Path屬性的值是一個(gè)指示路徑的字符串,例如:C:programVB98或C:WindowsSystem。對(duì)于DirListBox控件,在運(yùn)行時(shí)當(dāng)控件被創(chuàng)建時(shí),其默認(rèn)值是當(dāng)前路徑。第45頁(yè)任務(wù)分析文件列表框(FileListBox)用于將屬性指定的目錄下所選文件類型的文件列表顯示出來(lái),一般和DriveListBox、DirListBox控件一起使用。第46頁(yè)任務(wù)分析FileListBox控件的主要屬性FileName屬性語(yǔ)法:對(duì)象名. FileName =Pathna

20、me功能:用于設(shè)置或返回所選文件的文件名,在設(shè)計(jì)時(shí)不可用。 注意:FileName屬性和CommonDialog控件的FileName屬性不同,不包含路徑名。將FileListBox控件的Path屬性和FileName屬性中的字符串連接起來(lái)可獲得帶路徑的文件名。如果Path屬性的最后一個(gè)字符不是目錄分隔號(hào)(),應(yīng)在連接兩個(gè)屬性值的字符串中加入一個(gè)“”符號(hào)。第47頁(yè)任務(wù)分析Path屬性語(yǔ)法:對(duì)象名.Path=Pathname功能:用于返回或設(shè)置當(dāng)前路徑。在設(shè)計(jì)時(shí)不可用。Pattern屬性語(yǔ)法:對(duì)象名.Pattern=Value功能:用于返回或設(shè)置一個(gè)值,指示運(yùn)行時(shí)顯示在FileListBox控件中的文件的擴(kuò)展名。第48頁(yè)任務(wù)分析FileListBox控件的主要事件PathChange事件當(dāng)路徑被代碼中的FileName或Path屬性的設(shè)置所改變時(shí),Path

溫馨提示

  • 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)論