




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第十講文件系統(tǒng)胡小江
課程內(nèi)容安排文件的結(jié)構(gòu)和類型文件基本操作使用文件系統(tǒng)控件深入文件系統(tǒng)綜合練習(xí)思考和習(xí)題文件的結(jié)構(gòu)應(yīng)用程序?qū)ξ募M行讀寫操作時,必須按照數(shù)據(jù)的存放方式進行。數(shù)據(jù)的存放方式就是文件的結(jié)構(gòu)。在VisualBasic6.0中,文件的結(jié)構(gòu)可以用記錄集來描述。記錄是由字段組成,而字段是由字符組成的。文件結(jié)構(gòu)示意圖如圖10.2所示。
文件的類型在VisualBasic6.0中提供了三種數(shù)據(jù)的訪問方式,順序訪問、隨機訪問和二進制訪問。根據(jù)這三種訪問方式將文件分為順序文件、隨機文件和二進制文件三種。下面分別對這三種文件類型予以介紹。順序文件是為普通的文本文件的使用設(shè)計的。數(shù)據(jù)被存儲為ANSI字符。順序文件具有簡單的文本結(jié)構(gòu),將要存放的數(shù)據(jù)依次轉(zhuǎn)換為ASCII碼,然后存入磁盤。順序文件的存儲格式如圖10.3所示。隨機文件由相同格式的記錄組成。隨機文件的結(jié)構(gòu)與數(shù)據(jù)庫文件的結(jié)構(gòu)最為相似。該文件中,數(shù)據(jù)按照記錄的方式存放,每個存放單元以記錄號標(biāo)識,如圖10.4所示。相對于順序文件結(jié)構(gòu),隨機文件結(jié)構(gòu)更利于數(shù)據(jù)的讀取、查找、刪除、插入等相關(guān)操作。例如,要想對某一記錄進行刪除,只需按照記錄的記錄號找到記錄即可進行刪除操作。二進制文件適用于讀寫任意有結(jié)構(gòu)的文件。該文件允許存儲所有讀者希望的數(shù)據(jù)格式。除了沒有數(shù)據(jù)類型或者記錄長度的要求以外,它與隨機訪問很相似。但是,為了能夠正確地對它檢索必須精確地知道數(shù)據(jù)是如何寫到文件中的。順序文件的打開和關(guān)閉在對文件操作的時候讀者應(yīng)該首先打開文件,在完成文件操作后應(yīng)該將文件關(guān)閉。以下介紹順序文件的打開和關(guān)閉。1.順序文件的打開順序文件的打開需要使用Open語句。Open語句的語法如下。OpenpathnameFor[Input|Output|Append]Asfilenumber[Len=buffersize]以下代碼演示了使用Open語句打開一個位于“C:\test.txt”的文件,該文件用于存儲數(shù)據(jù)。01 ‘Open語句使用演示02 PrivateSubCommand1_Click()03 Open"C:\test.txt"ForOutputAs#1 '打開“C:\test.txt”文件04 EndSub打開一個順序文件并完成相應(yīng)的操作后應(yīng)該及時地關(guān)閉該文件。這樣可以釋系統(tǒng)資源并且可以使其他程序能夠使用這個文件。關(guān)閉文件需要使用Close語句,該語句的語法如下所示。Close[filenamelist]以下代碼使用Close語句關(guān)閉一個打開的文件。01 '使用Close語句02 PrivateSubCommand1_Click()03 Open"C:\test.txt"ForOutputAs#1 '打開文件04 Close#1 '關(guān)閉文件05 EndSub順序文件的寫操作為了方便介紹順序文件的讀寫操作,首先介紹順序文件的寫操作。在VisualBasic6.0中順序文件的寫操作主要是使用Print#語句和Write#語句。如果要讀入數(shù)據(jù),應(yīng)該首先用Input方式打開順序文件,然后讀出數(shù)據(jù)。順序文件的讀操作可以使用Input#語句、LineInput#語句或Input函數(shù)。隨機文件的打開和關(guān)閉要打開隨機文件,可以使用Open語句。讀者在使用Open語句打開隨機文件之前必須定義與數(shù)據(jù)類型一致的變量,該語句的語法如下所示。OpenpathnameFormode[Accessaccess][Lock]As[#]filenumberLen=reclength以下代碼演示了如何使用Open語句打開一個隨機文件。01 '隨機文件Open語句使用演示02 PrivateTypeworker '建立自定義數(shù)據(jù)類型worker03 idAsString*4 '定義工人的Id號04 nameAsString*8 '定義工人的姓名05 empAsString*8 '定義工人的職務(wù)06 EndType07 08 PrivateSubCommand1_Click() '打開隨機文件 "test.dat"09 DimnAsworker '定義worker變量10 OpenApp.Path&"\test.dat"ForRandomAs#1Len=Len(n) '打開文件11 ‘文件相關(guān)操作12 Close#113 EndSub隨機文件的寫操作隨機文件的寫操作用Put語句完成。Put語句用于將一個變量的數(shù)據(jù)寫入磁盤文件中。該語句的語法如下。Put[#]filename,[recnumber],varname在VisualBasic6.0中用Get語句完成隨機文件的讀操作,該語句的語法如下所示。Get[#]filename,[recnumber],varname使用文件系統(tǒng)控件VisualBasic6.0中為讀者提供了三個文件系統(tǒng)的控件,這三種控件分別是DriveListBox、DirListBox和FileListBox控件。通過這三個控件,可以在應(yīng)用程序中很方便地對驅(qū)動器、目錄及文件進行相關(guān)的操作。對相關(guān)文件進行操作時,讀者不必將一個文件的全路徑手工輸入到文本框中,只要通過這三個控件進行選擇就可以選定要操作的文件。DriveListBox控件DriveListBox控件也稱之為驅(qū)動器列表控件??梢酝ㄟ^DriveListBox控件很方便地選擇軟驅(qū)、硬盤及光驅(qū)等設(shè)備。在DriveListBox控件中列出了本地計算機的所有有效磁盤驅(qū)動器,如圖10.13所示。單擊圖中列表框右端的下三角按鈕,就可以看到本地計算機的所有有效磁盤驅(qū)動器。讀者也可以從鍵盤中輸入想要訪問的磁盤標(biāo)識符,例如,在鍵盤上鍵入“D”,列表框中會顯示硬盤的“D”分區(qū)。使用List屬性獲取DriveListBox控件列表項中的驅(qū)動器名稱,代碼如示例代碼10-9所示。示例代碼10-901 'List屬性02 PrivateSubForm_Load()03 DimiAsInteger '定義循環(huán)變量04 Print"驅(qū)動器列表:" '打印標(biāo)題05 06 Fori=0ToDrive1.ListCount-1 '遍歷驅(qū)動器07 PrintDrive1.List(i) '輸出驅(qū)動器名08 Nexti09 EndSubDirListBox控件DirListBox控件用于從最高目錄開始分層顯示目錄列表。該控件與DriveListBox控件同步使用,可以訪問本地計算機系統(tǒng)所有驅(qū)動器下的目錄或文件夾,控件如圖10.18所示。使用DirListBox控件和DriveListBox控件來訪問本地計算機系統(tǒng)文件目錄,并將選擇的文件目錄輸出,代碼如示例代碼10-11所示。01 'path屬性演示02 PrivateSubDir1_Change()03 lbPath.Caption=Dir1.Path '當(dāng)目錄改變時在標(biāo)簽顯示當(dāng)前路徑04 EndSub05 06 PrivateSubDrive1_Change()07 Dir1.Path=Drive1.Drive '驅(qū)動器改變時目錄列表顯示當(dāng)前驅(qū)動器目錄列表08 EndSubFileListBox控件FileListBox控件用于將Path屬性指定的目錄下的所選擇類型的文件以列表的方式顯示出來。該控件與前面所講的DirListBox控件及DriveListBox控件聯(lián)合使用可以訪問本地計算機系統(tǒng)下的所有文件。FileListBox控件如圖10.21所示。設(shè)置Pattern屬性,在FileListBox控件列表中只顯示TXT格式的文本文件,代碼如示例代碼10-12所示。02 PrivateSubDir1_Change()03 File1.Path=Dir1.Path '設(shè)置文件列表框的Path屬性04 EndSub05 06 PrivateSubDrive1_Change()07 Dir1.Path=Drive1.Drive '設(shè)置目錄列表框的Path屬性08 EndSub09 10 PrivateSubForm_Load()11 File1.Pattern="*.txt" '設(shè)置Pattern屬性為"*.txt"12 EndSub
文件系統(tǒng)對象文件系統(tǒng)對象FSO將程序中所涉及的文件系統(tǒng)及其操作封裝為一個整體對象,這種對象模型提出了有別于傳統(tǒng)的文件操作語句處理文件和文件夾的方法。采用在面向?qū)ο缶幊讨袕V泛使用的語法,讀者可以通過操作該對象的屬性和方法來實現(xiàn)文件系統(tǒng)的相關(guān)操作。例如,如果想獲取驅(qū)動器的剩余空間信息,以前需要使用WindowsAPI函數(shù)。在文件系統(tǒng)對象FSO中只需通過對象的方法和屬性的操作,即可實現(xiàn)獲取驅(qū)動器剩余空間信息的功能。FOS中的加載由于文件系統(tǒng)對象FSO不是VisualBasic6.0的內(nèi)置對象,該對象包含在Scripting類型庫(Scrrun.dll)中,在使用前應(yīng)先將其加載到工程中。選擇“工程”→“引用”菜單命令,打開“引用”對話框。在下拉列表中選擇“MicrosoftScriptingRuntime”,單擊“確定”按鈕,將文件系統(tǒng)對象FSO加載入工程中。選擇“視圖”→“對象瀏覽器”菜單命令打開“對象瀏覽器”對話框,可以查看到“Scripting”模塊中的所有對象,如圖10.27
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年軟件設(shè)計師考試綜合素質(zhì)測評試題及答案
- 政黨制度與選舉關(guān)系試題及答案
- 流行趨勢分析軟件設(shè)計師考試試題及答案
- 探索西方議會制度試題及答案
- 公共政策與區(qū)域協(xié)調(diào)發(fā)展試題及答案
- 生態(tài)文明政策的實施路徑探討試題及答案
- 2025年成人教育終身學(xué)習(xí)體系構(gòu)建與平臺運營中的老年教育市場研究報告
- 關(guān)注2025年西方政治試題及答案
- 2025年軟件設(shè)計師考試技術(shù)手段分享試題及答案
- 大數(shù)據(jù)背景下的公共政策試題及答案
- GB/T 18380.12-2008電纜和光纜在火焰條件下的燃燒試驗第12部分:單根絕緣電線電纜火焰垂直蔓延試驗1 kW預(yù)混合型火焰試驗方法
- word基礎(chǔ)入門公開課課件
- 綜合、??漆t(yī)院執(zhí)業(yè)校驗標(biāo)準(zhǔn)
- 學(xué)習(xí)羅陽青年隊故事PPT在急難險重任務(wù)中攜手拼搏奉獻PPT課件(帶內(nèi)容)
- 稀土元素的分離方法-icaredbd課件
- 四年級下數(shù)學(xué)課件-火車過橋-通用版
- 版式設(shè)計課件3,網(wǎng)格系統(tǒng)全攻略
- 船舶防臺風(fēng)安全安全知識
- 國家開放大學(xué)《人文英語3》章節(jié)測試參考答案
- 用雙棱鏡干涉測光波(20149)
- 靜音房聲學(xué)設(shè)計方案
評論
0/150
提交評論