第10章 文件.ppt_第1頁
第10章 文件.ppt_第2頁
第10章 文件.ppt_第3頁
第10章 文件.ppt_第4頁
第10章 文件.ppt_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、,第十章 文件,10.1 文件的基本概念 10.2 順序文件 10.3 隨機(jī)文件 10.4 文件系統(tǒng)控件 10.5 文件系統(tǒng)對(duì)象模型,10.1 文件的基本概念,10.1.1 文件的類型 10.1.2 文件訪問函數(shù)和語句,10.1.1 文件的類型,1.按數(shù)據(jù)性質(zhì)分類,可分為程序文件和數(shù)據(jù)文件。 2. 按照文件的存取方式及組成結(jié)構(gòu)可以把文件分為順序文件,隨機(jī)文件和二進(jìn)制文件三類。 3. 根據(jù)文件的數(shù)據(jù)編碼方式將文件分為文本文件和二進(jìn)制文件,10.1.2 文件訪問函數(shù)和語句,1.文件訪問的常用語句 (1)改變當(dāng)前驅(qū)動(dòng)器:ChDrive (2)改變當(dāng)前目錄:ChDir (3)刪除文件:Kill (4)

2、拷貝文件:FileCopy , (5)對(duì)文件重命名:Name As (6)創(chuàng)建新的目錄(或文件夾): MkDir 或 (7)刪除目錄(或文件夾) : RmDir 或 (8)得到當(dāng)前的路徑: CurDir 驅(qū)動(dòng)器名,10.1.2 文件訪問函數(shù)和語句,2.與文件有關(guān)的重要函數(shù) (1)LOF()函數(shù) LOF函數(shù)返回某個(gè)文件的字節(jié)數(shù),如LOF(1)返回#1文件的長度,如果返回值為0,則表示該文件是一個(gè)空文件。 (2)EOF()函數(shù) EOF函數(shù)返回一個(gè)表示文件指針是否到達(dá)文件末尾的標(biāo)志。如果到了文件尾,EOF函數(shù)返回TRUE,否則返回FALSE。對(duì)于順序文件用EOF函數(shù)來測試是否到文件尾,對(duì)于隨機(jī)文件和

3、二進(jìn)制文件,當(dāng)最近一個(gè)執(zhí)行的GET語句無法讀到一個(gè)完整記錄時(shí)返回TRUE,否則返回FALSE。 (3)LOC()函數(shù) LOC函數(shù)返回一個(gè)在打開文件中讀寫的位置,對(duì)于隨機(jī)文件,它將返回最近讀寫的記錄號(hào);對(duì)于二進(jìn)制文件,它將返回最近讀寫的一個(gè)字節(jié)的位置;對(duì)于順序文件,它將返回在文件中當(dāng)前字節(jié)位置除以128所得的值。,10.2 順序文件,10.2.1 順序文件的打開與關(guān)閉 10.2.2 順序文件的讀寫,10.2.1 順序文件的打開與關(guān)閉,一打開文件 格式:Open For Acess 操作類型 鎖定 As # Len=記錄類型 說明: (1)文件名是所要打開的文件的名稱,其中包括完整的路徑名稱。 (

4、2)模式指定文件的打開方式??梢允且韵氯N之一: Input:以讀方式打開文件,將數(shù)據(jù)從磁盤讀入內(nèi)存中,對(duì)文件進(jìn)行讀操作。 Output:以寫方式打開文件。該方式創(chuàng)建一個(gè)新的順序文件,等待輸出數(shù)據(jù),如果存在同名文件,則覆蓋原有文件內(nèi)容。 Append:以追加方式打開文件。打開一個(gè)已經(jīng)存在的文件,等待輸出數(shù)據(jù)追加到原文件內(nèi)容之后。如果不存在該文件,則創(chuàng)建一個(gè)新文件。 (3)操作類型:規(guī)定對(duì)打開的文件進(jìn)行操作的類型,有以下三種: READ:只讀 WRITE:只寫 READWRITE:讀寫皆可,(4)鎖定:用于多進(jìn)程環(huán)境中,以指定允許其他進(jìn)程對(duì)本次打開的文件進(jìn)行的操作類型。鎖定有四種類型: Shar

5、ed(缺省):共享,允許其他任何進(jìn)程對(duì)該文件進(jìn)行讀寫操作。 Lock Read:禁止其他進(jìn)程對(duì)該打開的文件進(jìn)行讀操作。 Lock Write:禁止其他進(jìn)程對(duì)該打開的文件進(jìn)行寫操作。 Lock Read Write:禁止其他進(jìn)程對(duì)該打開的文件進(jìn)行讀寫操作。 (5)文件號(hào)是一個(gè)1511之間的整數(shù),可以同時(shí)被打開的每個(gè)文件的文件號(hào)不能相同。文件被打開后,此文件號(hào)就代表該文件,通過它讀寫文件,直至文件被關(guān)閉。 (6)記錄長度:是一個(gè)小于或等于32767的整數(shù),它指定數(shù)據(jù)緩沖區(qū)的大小。,10.2.1 順序文件的打開與關(guān)閉,二、關(guān)閉文件 對(duì)文件的各種操作執(zhí)行完畢后,必須將文件關(guān)閉,否則會(huì)造成數(shù)據(jù)丟失等現(xiàn)象

6、。關(guān)閉文件的命令為Close,其格式如下: 命令格式:Close # ,# 說明: 1)文件號(hào)是Open語句打開文件時(shí)指定的文件號(hào)。 2)Close語句可以同時(shí)關(guān)閉多個(gè)已經(jīng)打開的文件。,10.2.1 順序文件的打開與關(guān)閉,10.2.2 順序文件的讀寫,1.寫文件命令Print # 語句 格式: Print # ,輸出項(xiàng)列表 功能:將各輸出項(xiàng)的值寫入到指定的文件中。 2.寫文件命令write # 語句 格式:Write # ,輸出項(xiàng)列表 功能:將各輸出項(xiàng)的值寫入到指定的文件中。 3.讀文件命令I(lǐng)NPUT # 語句 有三種格式: 格式一:Input # 文件號(hào),變量列表 格式二:Line Inpu

7、t # 文件號(hào),字符串變量 格式三:Input$(讀取字符數(shù),# 文件號(hào)),10.3 隨機(jī)文件,10.3.1 定義數(shù)據(jù)類型和變量聲明 10.3.2 隨機(jī)文件的打開與關(guān)閉 10.3.3 隨機(jī)文件的讀寫操作,10.3.1 定義數(shù)據(jù)類型和變量聲明,自定義數(shù)據(jù)類型的語句格式為: Type 自定義類型名 元素名 (下標(biāo)) As 類型名 元素名 (下標(biāo)) As 類型名 End Type 例: Type StudType SNO As Interger SName As String * 20 SBirthday As Date SSex As String *1 SMark(1 to 3) As Sing

8、le End Type,10.3.2 隨機(jī)文件的打開與關(guān)閉,1.隨機(jī)文件的打開 語法格式:Open “文件名” For Random As #文件號(hào) Len=記錄長度 說明: 隨機(jī)文件打開后,讀寫是相同模式,既可以從文件中讀取數(shù)據(jù),也可以向文件中寫入數(shù)據(jù)。 文件名是所要打開的文件名稱,包括完整的路徑名稱。 記錄長度用來指定隨機(jī)文件每條記錄的長度,默認(rèn)為128字節(jié),取值范圍為032K字節(jié),也可以在程序中用Len函數(shù)獲得記錄長度。 例如:打開D盤的隨機(jī)文件D3.dat,使用的命令是: Open “D:d3.dat” For Random As #1 Len=Len(Student) 2.隨機(jī)文件的

9、關(guān)閉 關(guān)閉隨機(jī)文件與關(guān)閉順序文件相同。使用命令Close #文件號(hào)。,10.3.3 隨機(jī)文件的讀寫操作,1、隨機(jī)文件的寫操作 對(duì)隨機(jī)文件的寫操作使用Put命令,其格式如下: 格式:Put # 文件號(hào),記錄號(hào),變量名 功能:將記錄變量中的數(shù)據(jù)寫入指定文件中記錄號(hào)指定的記錄位置。 、隨機(jī)文件的讀操作 對(duì)隨機(jī)文件的讀操作使用Get命令,其格式如下: 格式:Get #文件號(hào),記錄號(hào),變量名 功能:從指定的文件中讀取記錄號(hào)指定的記錄,并賦值給記錄變量。,10.4 文件系統(tǒng)控件,10.4.1 驅(qū)動(dòng)器列表框控件 10.4.2 目錄列表框控件 10.4.3 文件列表框控件 10.4.4 文件系統(tǒng)控件的組合使用

10、,10.4.1 驅(qū)動(dòng)器列表框控件,驅(qū)動(dòng)器列表框的常用屬性、事件和方法有: 1Drive屬性 驅(qū)動(dòng)器列表框的Drive屬性,用于在運(yùn)行時(shí) 返回或設(shè)置所選定的驅(qū)動(dòng);Drive屬性不能在 設(shè)計(jì)狀態(tài)時(shí)設(shè)置,只能在程序中被引用或設(shè)置。 其形式如下: 對(duì)象.Drive =drive 其中:對(duì)象代表驅(qū)動(dòng)器列表框名稱。drive代表驅(qū)動(dòng)器名稱。 2.Change事件 每次在重新設(shè)置驅(qū)動(dòng)器列表框的Drive屬性時(shí)都會(huì)引發(fā)該對(duì)象的Change事件。,10.4.2 目錄列表框控件,目錄列表框的常用屬性、事件和方法有: 1.Path屬性 目錄列表框的Path屬性用來返回或設(shè)置當(dāng)前路徑,不能在設(shè)計(jì)狀態(tài)時(shí)設(shè)置,其格式如下

11、: 對(duì)象.Path=pathname 其中:對(duì)象指目錄列表框或文件列表框,pathname是一個(gè)路徑名字符串。 2.Change事件 每次在重設(shè)目錄列表框的Path屬性時(shí)都會(huì)引發(fā)該對(duì)象的Change事件。,10.4.3 文件列表框控件,文件列表框的常用屬性、事件和方法有: 1.Path屬性 文件列表框也有Path屬性,表示列表框中顯示的文件所在的路徑。 格式為:對(duì)象.Path=pathname 2.Pattern屬性 文件列表框的Pattern屬性返回或設(shè)置文件列表框所顯示的文件類型。該屬性值為具有通配符的文件名字符串,缺省值為“*.*”,顯示所有文件。其格式為:對(duì)象. Pattern =va

12、lue 其中:對(duì)象指文件列表框名稱,value是一個(gè)文件名字符串。 例如:file1.Pattern=”*.exe”,則在文件列表框中只顯示后綴為exe的可執(zhí)行文件。,10.4.3 文件列表框控件,3.FileName屬性 文件列表框的FileName屬性返回或設(shè)置被選定文件的文件名和路徑。該屬性在設(shè)計(jì)狀態(tài)不能使用。其格式如下: 對(duì)象. FileName =pathname 其中,pathname是一個(gè)指定文件名及其路徑的字符串。 注意:引用FileName時(shí)僅僅返回被一文件的文件名,需要用Path屬性才能得到其路徑,但設(shè)置時(shí)文件名之前可以帶路徑。 4.PathChange事件 每次重設(shè)Pat

13、h屬性都會(huì)引發(fā)PathChange事件。 5.PatternChange事件 當(dāng)文件列表框的Pattern屬性改變時(shí)觸發(fā)該事件,10.4.4 文件系統(tǒng)控件的組合使用,三個(gè)文件系統(tǒng)控件必須協(xié)調(diào)工作才能構(gòu)成一個(gè)文件管理系統(tǒng)。為了使它們之間能產(chǎn)生同步效果,需要編寫如下事件過程。 1)當(dāng)用戶在驅(qū)動(dòng)器列表框中選中一個(gè)新的驅(qū)動(dòng)器后,目錄列表框中的目錄也隨之改變。 Private Sub Drive1_Change() Dir.Path=Drive1.Drive End Sub 2)當(dāng)目錄列表框的目錄發(fā)生改變時(shí),文件列表框中的文件也隨之改變 Private Sub Dir1_Change() File1.P

14、ath=Dir1.Path End Sub,10.5 文件系統(tǒng)對(duì)象模型,10.5.1 文件系統(tǒng)對(duì)象模型概述 10.5.2 管理驅(qū)動(dòng)器 10.5.3 管理文件夾 10.5.4 管理文件,10.5.1 文件系統(tǒng)對(duì)象模型概述,文件系統(tǒng)對(duì)象模型(FSO 對(duì)象模型)使應(yīng)用程序能夠創(chuàng)建、改變、移動(dòng)和刪除文件夾,或者檢測是否存在指定的文件夾。FSO對(duì)象模型也可以獲取關(guān)于文件夾的信息,諸如名稱、創(chuàng)建日期或最近修改日期等等。 FSO 對(duì)象模型包括以下對(duì)象:,10.5.1 文件系統(tǒng)對(duì)象模型概述,使用FileSystemObject 對(duì)象進(jìn)行編程一般要經(jīng)過如下的步驟: 1.創(chuàng)建FileSystemObject對(duì)象

15、創(chuàng)建FileSystemObject對(duì)象可以通過如下兩種方法完成: (1)將一個(gè)變量聲明為 FileSystemObject 對(duì)象類型: 例:Dim fso As New FileSystemObject Dim drv As Drive (2)使用 CreateObject 方法來創(chuàng)建一個(gè)FileSystemObject對(duì)象: 例:Set fso = CreateObject(Scripting.FileSystemObject“) 2.應(yīng)用相關(guān)方法 創(chuàng)建對(duì)象實(shí)例后,下一步就是使用該FileSystemObject 對(duì)象的適當(dāng)方法。例如,可以使用 CreateFolder 方法創(chuàng)建一個(gè)文件夾

16、,也可以使用 CreateTextFile 方法創(chuàng)建一個(gè)文本文件。 3.訪問對(duì)象相關(guān)屬性,10.5.2 管理驅(qū)動(dòng)器,對(duì)驅(qū)動(dòng)器的操作主要通過Drive對(duì)象并配合FileSystemObject對(duì)象,F(xiàn)SO不支持進(jìn)行創(chuàng)建或刪除驅(qū)動(dòng)器的操作,而只允許收集關(guān)于系統(tǒng)所用驅(qū)動(dòng)器的信息。通過該對(duì)象的屬性可以獲得下列信息: 以字節(jié)表示的驅(qū)動(dòng)器總空間 (TotalSize 屬性) 以字節(jié)表示的驅(qū)動(dòng)器可用空間 (AvailableSpace 或 FreeSpace 屬性) 為驅(qū)動(dòng)器指定的字母號(hào) (DriveLetter 屬性) 驅(qū)動(dòng)器類型,諸如可移動(dòng)的、固定的、網(wǎng)絡(luò)、CD-ROM等 驅(qū)動(dòng)器序列號(hào) (SerialN

17、umber 屬性) 驅(qū)動(dòng)器使用的文件系統(tǒng)類型,諸如 FAT、 FAT32、 NTFS等等 (FileSystem屬性) 驅(qū)動(dòng)器是否可用 (IsReady 屬性) 共享和卷標(biāo)的名稱(ShareName 和VolumeName 屬性) 驅(qū)動(dòng)器的路徑或根文件夾 (Path和RootFolder 屬性),10.5.3 管理文件夾,文件夾操作主要包括創(chuàng)建、復(fù)制、移動(dòng)和刪除文件夾,檢查文件夾是否存在以及指定路徑中某文件夾中相應(yīng)的文件對(duì)象。完成這些操作可以使用 FileSystemObjec對(duì)象或 Folder 對(duì)象的方法。,10.5.4 管理文件,對(duì)于文件操作主要有兩類: 1.移動(dòng)、復(fù)制、和刪除文件: V

18、B6可通過FileSystemObject對(duì)象對(duì)文件進(jìn)行復(fù)制(CopyFile)、移動(dòng)(MoveFile)與刪除(DeleteFile)等操作,在File對(duì)象中等效的方法有Copy 、Move和Delete。這類操作和Folder對(duì)象類似,使用的命令參見下表 :,10.5.4 管理文件,2.創(chuàng)建文件。 (1)、用 File System Objects 創(chuàng)建文本文件創(chuàng)建文本文件有三種方法: 方法一:使用CreateTextFile方法創(chuàng)建一個(gè)新文本文件 語法:object.CreateTextFile(filename,overwrite,unicode) 功能:該方法創(chuàng)建一個(gè)指定的文件名的文本文件并且返回一個(gè)用于讀寫該文件的TextStream對(duì)象。 方法二:使用OpenAsTextStream方法創(chuàng)建一個(gè)新文本文件 語法:object.OpenAsTextStream(iomode,format) 功能:打開一個(gè)指定的文件并返回一個(gè)TextStream對(duì)象,該對(duì)象可用來對(duì)文件進(jìn)行讀、寫、追加

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論