版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、VB 編程班第十七課1、 介紹:文件操作順序文件,隨機(jī)文件,二進(jìn)制文件的操作2、 說明:順序文件在程序中對(duì)文件的操作,通常按 3 個(gè)步驟進(jìn)行:順序文件的打開與關(guān)閉1。打開順序文件其使用格式如下:Open FileName For Input | Output | Append LockAs filenumber Len = Buffersize各參數(shù)的意義Open文件名 For 打開方式 As#文件號(hào)文件名。打開方式包括以下 3 種。InputOutputAppend(3)文件號(hào)。是一個(gè) 1511 之間的整數(shù)。它用來代表所打開的文件,文件號(hào)可以是整數(shù)或數(shù)值型變量。例如: Opend:shu1.
2、datForInputAs#1該語句以輸入方式打開文件 shu1.dat,并指定文件號(hào)為 1。 Opend:shu2.datForOutputAs#5件 shu2.dat 進(jìn)行寫操作,并指定文件號(hào)為 5。 As#7件 shu3.dat 添加數(shù)據(jù),并指定文件號(hào)為 7。該語句以輸出方式打開文件 shu2.dat,即 Opend:shu3.datForAppend該語句以添加方式打開文件 shu3.dat,即例如:OPEN“C:TEMPA.TXT “ FOR Input AS #1 OPEN“C:TEMPB.TXT “ FOR Output AS #2 OPEN“C:TEMPC.TXT “ FOR
3、Append AS #12、關(guān)閉文件Close 語句使用格式如下:Close filenumberlist讀出或?qū)懭腙P(guān)閉文件打開文件其中:filenumberlist:可選項(xiàng),為文件號(hào)列表,如:#1, #2, #3,如果省略,則將關(guān)閉 Open 語句打開的所有活動(dòng)文件。例如:Close #1,#2,#3Close順序文件的讀寫操作件寫入內(nèi)容使用 Pr# 語句或 Write#語句,在程序是數(shù)據(jù)輸出。1Pr語句使用格式:PR#,說明:文件號(hào)為以寫方式打開文件的文件號(hào);輸出列表為用分號(hào)或逗號(hào)分隔的變量、常量、空格和定位函數(shù)序列。2Write 命令使用格式:Write #,Write 語句采用緊湊格式
4、。數(shù)據(jù)項(xiàng)之間“,”,并給字符數(shù)據(jù)加上雙引號(hào)。Pr與 Write 語句輸出數(shù)據(jù)結(jié)果比較。Private Sub Form_Click()Dim Str As String, Anum AsegerOpen D:Myfile.dat For Output As 1 Str = ABCDEFGAnum = 12345Pr#1, Str, AnumWrite #1, Str, Anum Close #1End Sub編程把一個(gè)文本框中的內(nèi)容,以文件形式存入磁盤。假定文本框的名稱為 Mytxt,文件名為 Myfile.dat。方法 1:把整個(gè)文本框的內(nèi)容地寫入文件。Open Myfile.dat For
5、 Output As #1Pr#1, Mytxt.TextClose #1方法 2:把整個(gè)文本框的內(nèi)容一個(gè)字符一個(gè)字符地寫入文件。 Open Myfile.dat For Output As #1For i=1 To len(Mytxt.Text)Pr Next iClose #1#1,Mid(Mytxt.Text,i,1);2. 順序文件讀操作從現(xiàn)存文件中讀入數(shù)據(jù),應(yīng)以順序 Input 方式打開該文件。然后使用 Input# 語句、Line Input# 語句和 Input( )函數(shù)讀入到程序變量中。使用格式如下:INPUT #文件號(hào),變量列表把讀出的每個(gè)數(shù)據(jù)項(xiàng)分別存放到所對(duì)應(yīng)的變量。LIN
6、E INPUT #文件號(hào),字符串變量讀一行到變量中,主要用來文本文件。INPUT$(字符數(shù), #文件號(hào))指定的數(shù)量的字符,作為函數(shù)的返回值3與讀文件操作有關(guān)的幾個(gè)函數(shù)Lof 函數(shù)LOF 函數(shù)將返回某文件的字節(jié)數(shù)。例如,LOF(1)返回#1 文件的長度,如果返回 0 值,則表示該文件是一個(gè)空文件。Loc 函數(shù)Loc 函數(shù)將返回在一個(gè)打開文件中讀寫的字節(jié)的位置。(3)Eof 函數(shù)號(hào);對(duì)于二進(jìn)制文件,它將返回最近讀寫的一個(gè)Eof 函數(shù)將返回一個(gè)表示文件指針是否到達(dá)文件末尾的標(biāo)志。如果到了文件末尾,Eof返回 TRUE(-1),否則返回 FALSE(0)。編程將一文本文件的內(nèi)容讀到文本框假定文本框名稱
7、為 txtTest,文件名為 MYFILE.TXT??梢酝ㄟ^下面三種方法來實(shí)現(xiàn)。方法 1:一行一行讀txtTest.Text Open MYFILE.TXT For Input As #1 Do While Not EOF(1)Line Input #1, InputDatatxtTest.Text txtTest.Text + InputData+vbCrLf LoopClose #1函數(shù)方法 2:讀txtTest.Text Open MYFILE.TXT For Input As #1 txtTest.Text = Input( LOF(1),1)Close #1方法 3:一個(gè)個(gè)字符讀Di
8、m InputData as String*1 txtTest.Text Open MYFILE.TXT For Input As #1 Do While Not EOF(1)Input #1, InputDatatxtTest.Text txtTest.Text + InputData LoopClose #1利用文件系統(tǒng)控件、組合框、文本框,制作一個(gè)文件瀏覽器。要求:組合框限定文件列表框中顯示文件的類型,如選定“*.Txt”文件。當(dāng)在文件列表框選定欲顯示的文件時(shí),在文本框顯示出該文件的內(nèi)容。Private Sub Combo1_Click() Dim filetype As String
9、Select Case Combo1.TextCase 所有文件(*.*)filetype = *.* Case 窗體文件(*.frm*)filetype = *.frm* Case 文本文件(*.txt*)filetype = *.txt* End Select File1.Pattern = filetypeEnd SubPrivate Sub Dir1_Change() File1.Path = Dir1.PathEnd SubPrivate Sub Drive1_Change()Dir1.Path = Drive1.Drive End SubPrivate Sub File1_Clic
10、k()Dim st As String, fpaText1.Text = s StringIf Right(Dir1.Path, 1) = Then fpath = Dir1.Path & File1.FileName Elsefpath = Dir1.Path & & File1.FileName End IfOpen fpath For Input As #1 Do While Not EOF(1)Line Input #1, stText1.Text = Text1.Text + st + vbCrLf LoopClose #1End SubPrivate Sub Form_Load()
11、 Combo1.AddItem 所有文件(*.*) Combo1.AddItem 窗體文件(*.frm*) Combo1.AddItem 文本文件(*.txt*) Combo1.ListIndex = 2End Sub隨機(jī)文件隨機(jī)文件的打開與關(guān)閉1打開隨機(jī)文件打開隨機(jī)文件格式為:OPEN FileName FOR Random Acs Lock As filenumber Len = reclength用 OPEN 命令以 Random 模式打開隨機(jī)文件,同時(shí)寫操作。例如:的長度。文件打開后,可同時(shí)進(jìn)行讀Open d:abc.dat For Random Ac2關(guān)閉隨機(jī)文件s Read As
12、#1 Len = 20隨機(jī)文件的關(guān)閉與關(guān)閉順序文件相同。寫隨機(jī)文件Put#文件號(hào),號(hào),變量名將一個(gè)變量的內(nèi)容寫到指定的位置處。忽略讀隨機(jī)文件號(hào),則表示在當(dāng)前后的位置一條。Get#文件號(hào),號(hào),變量名忽略號(hào),則讀出當(dāng)前后的那一條。學(xué)生信息。程序的運(yùn)行界面下圖所示,該程序的具設(shè)計(jì)一個(gè)簡單的學(xué)生成績管理程序,使用隨機(jī)文件有數(shù)據(jù)添加、修改、刪除及學(xué)生信息順序查詢等功能。二進(jìn)制文件1打開文件Open文件名For BinaryAs#文件號(hào)寫操作Put#文件號(hào),位置,變量名 寫入長度等于變量長度的數(shù)據(jù)。讀操作GET#文件號(hào),位置,變量名從指定位置開始讀出長度等于變量長度的數(shù)據(jù)存入變量中,數(shù)據(jù)讀出后移動(dòng)變量長度
13、位置,如果2.3.忽略位置,則表示從文件指針?biāo)傅奈恢瞄_始讀出數(shù)據(jù),數(shù)據(jù)讀出后移動(dòng)變量長度位置。編程序?qū)崿F(xiàn)將 D 盤根目錄中的文件Abc.dat到 E 盤,且文件名改為 Myfile.dat。Dim char As Byte 打開源文件Open D:Abc.dat For Binary As # 1 打開目標(biāo)文件Open E:Myfile.dat For Binary As # 2Do While Not EOF(1)Get #1, , char Put #2, , char LoopClose#1, #2 從源文件讀出一個(gè)字節(jié) 將一個(gè)字節(jié)寫入目標(biāo)文件文件操作語句改變當(dāng)前驅(qū)動(dòng)器(ChDrive
14、 語句)格式:ChDrivedrive功能:改變當(dāng)前驅(qū)動(dòng)器。說明:如果drive 為“,則當(dāng)前驅(qū)動(dòng)器將不會(huì)改變;如果drive 中有多個(gè)字 符,則ChDrive 只會(huì)使用首字母。例如:ChDrive D 及 ChDrive D: 和 ChDrive Dasd 都是將當(dāng)前驅(qū)動(dòng)器設(shè)為D 盤。改變當(dāng)前目錄(ChDir 語句)格式:ChDirpath功能:改變當(dāng)前目錄。例如:ChDir D:TMP說明:ChDir 語句改變?nèi)笔∧夸浳恢?但不會(huì)改變?nèi)笔◎?qū)動(dòng)器位置。例如,如果缺省的驅(qū)動(dòng)器是 C,則上面的語句將會(huì)改變驅(qū)動(dòng)器 D 上的缺省目錄,但是 C 仍然是缺省的驅(qū)動(dòng)器:2.刪除文件(Kill 語句)格式:
15、Killpathname功能:刪除文件。說明:pathname 中可以使用統(tǒng)配符“*”和“?”。例如:Kill*.TXT Kill C:MydirAbc.dat4.建立(MkDir 語句)和刪除(RmDir 語句)目錄建立目錄格式:MkDirpath功能:創(chuàng)建一個(gè)新的目錄。例如:MkDir D:MydirABC刪除目錄格式:RmDirpath功能:刪除一個(gè)存在的目錄。說明:只能刪除空目錄。例如:RmDir D:MydirABC“說明:RmDir 只能刪除空子目錄,如果想要使用 RmDir 來刪除一個(gè)含有文件的目錄或文件夾,則會(huì)發(fā)生錯(cuò)誤??截愇募?FileCopy 語句格式:FileCopyso
16、urce , destination功能:例如:一個(gè)文件。FileCopy D:MydirTest.doc A:MyTest.doc說明: FileCopy 語句不能6文件的更名 Name 語句一個(gè)已打開的文件。格式:NameoldpathnameAsne功能:重新命名一個(gè)文件或目錄。thname例:Name D:MydirTest.doc As A:MyTest.doc說明:(1) Name 具有移動(dòng)文件的功能。(2) 不能使用統(tǒng)配符“*”和“?”,不能對(duì)一個(gè)已打開的文件上使用 Name 語句。設(shè)置文件屬性Se格式:tr 語句。Setr FileName, attributes其參數(shù)含義:F
17、ileName:必要參數(shù)。一個(gè)文件名的字符串表達(dá)式。Attributes:必要參數(shù)。常數(shù)或數(shù)值表達(dá)式,其總和用來表示文件的屬性。Attributes 參數(shù)設(shè)置下表:文件操作函數(shù)1獲得當(dāng)前目錄CurDir 函數(shù)格式:CurDir(drive)功能:利用 CurDir 函數(shù)可以確定指定驅(qū)動(dòng)器的當(dāng)前目錄。說明:可選的 Drive 參數(shù)是一個(gè)字符串表達(dá)式,它指定一個(gè)存在的驅(qū)動(dòng)器。如果沒有指定驅(qū)動(dòng)器,或 Drive 是零長度字符串(“),則 CurDir 會(huì)返回當(dāng)前驅(qū)動(dòng)器的路徑。例如:str=CurDir(“C:”)獲得 C 盤當(dāng)前目錄路徑,并賦值給變量Str獲得文件屬性Getr 函數(shù)。格式:Getr(
18、FileName)功能:返回代表一個(gè)文件、目錄、或文件夾的屬性的eger 數(shù)據(jù)。Getr 返回的值及代表的含義下表常數(shù)數(shù)值描 述VbNormal0常規(guī)(缺省值)VbReadOnly1只讀。VbHidden2隱藏。VbSystem4系統(tǒng)文件VbArchive32上次備份以后,文件已經(jīng)改變3.FileDateTime 函數(shù)格式:FileDateTime(FileName)功能:返回一個(gè) Variant (Date),此值為一個(gè)文件被創(chuàng)建或最后修改后的日期和時(shí)間。 4FileLen 函數(shù)格式:FileLen(FileName)功能:返回一個(gè) Long,代表一個(gè)文件的長度,是字節(jié)。5S函數(shù)和S過程在
19、VB 中,可以調(diào)用在DOS 下或Windows 下運(yùn)行的應(yīng)用程序:函數(shù)調(diào)用形式:ID=S( FileName ,WindowType )說明:執(zhí)行一個(gè)可執(zhí)行文件,返回一個(gè) Variant (Double),如果成功的話,代表這個(gè)程序的任務(wù) ID,它是一個(gè)唯一的數(shù)值,用來指明正在運(yùn)行的程序。若不成功,則會(huì)返回 0過程調(diào)用形式:SFileName,WindowType)FileName:是要執(zhí)行的應(yīng)用程序名字符串,包括盤符、路徑,它必須是可執(zhí)行的文件。WindowType:為整型值,表示執(zhí)行應(yīng)用程序打開的窗口類型,其取值下表。常數(shù)數(shù)值描 述VbNormal0常規(guī)vbReadOnly1只讀VbHid
20、den2隱藏VbSystem4系統(tǒng)文件VbDirectory16目錄或文件夾VbArchive32上次備份以后,文件已經(jīng)改變Vbalias64指定的文件名是別名例如: 調(diào)用執(zhí)行Windows 系統(tǒng)中的記事本i = S(C:WINDOWSNOTEPAD.EXE) 進(jìn)入 MS_DOS 狀態(tài)j = S(c:, 1)也可按過程形式調(diào)用:SSC:WINDOWSNOTEPAD.EXEc:, 1注意,上面指定的執(zhí)行文件,可能因不同計(jì)算機(jī)系統(tǒng),文件的路徑有所不同。*文件系統(tǒng)對(duì)象(了解內(nèi)容)在 VB6.0 中新增了文件系統(tǒng)對(duì)象(File System Object 縮寫為 FSO)模型,它提供了一整套對(duì)文件系統(tǒng)
21、進(jìn)行管理和操作的方法和屬性,包括:獲得驅(qū)動(dòng)器的信息,如驅(qū)動(dòng)器列表、盤符、磁盤空間等。 獲得文件夾的或文件的信息,如名稱、創(chuàng)建、修改日期等。檢查指定的文件夾或文件是否存在及在什么位置。文件夾或文件的刪除、移動(dòng)、對(duì)文本文件的讀寫操作。FileSystemObject 對(duì)象等通常操作。FileSystemObject 對(duì)象是 FSO 模型中的創(chuàng)建一個(gè) FileSystemObject 對(duì)象。對(duì)象,在應(yīng)用程序中使用 FSO 的編程主要步驟是:根據(jù)應(yīng)用程序的需要,通過調(diào)用 FileSystemObject 對(duì)象中的方法來創(chuàng)建一個(gè)新的對(duì)象,如 Drive 對(duì)象、Folder 對(duì)象等。通過新對(duì)象的屬性值獲得
22、用戶所需的信息或利用對(duì)象的方法進(jìn)行所需的操作。1創(chuàng)建 FileSystemObject 對(duì)象有兩種方法創(chuàng)建 FileSystemObject 對(duì)象:方法一、 使用 New 關(guān)鍵字一個(gè)變量為 FileSystemObject 對(duì)象類型。其語法格式:Dim As New FileSystemObject常量值描述VbHide0窗口被隱藏,且焦點(diǎn)會(huì)移到隱式窗口VbNormalFocus1窗口具有焦點(diǎn),且會(huì)還原到它原來的大小和位置VbMinimizedFocus2(缺?。┐翱跁?huì)以一個(gè)具有焦點(diǎn)的圖標(biāo)來顯示(最小VbizedFocu VbNormalNoFocus3窗口是一個(gè)具有焦點(diǎn)的最大化窗口4窗口會(huì)被
23、還原到最近使用的大小和位置,而當(dāng)前活VbMinimizedNoFocus6窗口會(huì)以一個(gè)圖標(biāo)來顯示。而當(dāng)前活動(dòng)的的窗口仍例如:Dim fsox As New FileSystemObject方法二、使用 CreateObject 方法創(chuàng)建一個(gè) FileSystemObject 對(duì)象,其語法格式:Set =CreateObject(Scripting.FileSystenObject )例如:Dim fsox As ObjectSet fsox=CreateObject(Scripting.FileSystenObject ) 2FileSystemObject 對(duì)象的屬性FileSystemOb
24、ject 的屬性只有一個(gè) Drives, 它是系統(tǒng)中所有 Drive 對(duì)象的對(duì)象集合,用戶可以獲取當(dāng)前計(jì)算機(jī)系統(tǒng)中所有驅(qū)動(dòng)器的信息。例如 下面的代碼可顯示系統(tǒng)能夠使用的驅(qū)動(dòng)器名稱:Dim fsox As New FileSystemObject For Each I In fsox .DrivesPri.DriveLetter Next I2FileSystemObject 對(duì)象的方法FileSystemObject 對(duì)象有許多方法 ,在 FSO 模型中對(duì)文件的管理就是通過這些方法來完成的。Drive 對(duì)象通過 Drive 對(duì)象可以獲得計(jì)算機(jī)上關(guān)于驅(qū)動(dòng)器的信息。諸如驅(qū)動(dòng)器有多少可用空間,其共享名稱是什么,等等。要使用 Drive 對(duì)象,首先要一個(gè)驅(qū)動(dòng)器類型的變量,接著使用 FileSystemObject 對(duì)象的 GetDrive 方法返回一個(gè)Drive 對(duì)象,例如:Dim drv As DriveSet drv=fsox.GetDrive(“C:”)使用 FileSystemObject 對(duì)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年特色餐廳廚房承包運(yùn)營合同2篇
- 二零二五年度農(nóng)機(jī)車輛租賃及配套設(shè)備供應(yīng)合同4篇
- 2025年度農(nóng)機(jī)合作社農(nóng)機(jī)保險(xiǎn)代理服務(wù)合同4篇
- 二零二五年度門臉房屋租賃與教育培訓(xùn)機(jī)構(gòu)合作合同3篇
- 2025年度智能門禁系統(tǒng)與智能家居系統(tǒng)融合合同4篇
- 二零二五年度家教服務(wù)跨地域合作三方合同2篇
- 煙霧探測器的功能與使用
- 2025年度二手車售后服務(wù)合同協(xié)議2篇
- 2025版模特與時(shí)尚博主互動(dòng)合作合同4篇
- 2025年個(gè)人購房稅費(fèi)減免專項(xiàng)合同
- 物流無人機(jī)垂直起降場選址與建設(shè)規(guī)范
- 肺炎臨床路徑
- 外科手術(shù)鋪巾順序
- 創(chuàng)新者的窘境讀書課件
- 綜合素質(zhì)提升培訓(xùn)全面提升個(gè)人綜合素質(zhì)
- 如何克服高中生的社交恐懼癥
- 聚焦任務(wù)的學(xué)習(xí)設(shè)計(jì)作業(yè)改革新視角
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)三 APP的品牌建立與價(jià)值提供
- 電子競技范文10篇
- 食堂服務(wù)質(zhì)量控制方案與保障措施
- VI設(shè)計(jì)輔助圖形設(shè)計(jì)(2022版)
評(píng)論
0/150
提交評(píng)論