09 文件 下載全本共13章進(jìn)我的文庫.ppt_第1頁
09 文件 下載全本共13章進(jìn)我的文庫.ppt_第2頁
09 文件 下載全本共13章進(jìn)我的文庫.ppt_第3頁
09 文件 下載全本共13章進(jìn)我的文庫.ppt_第4頁
09 文件 下載全本共13章進(jìn)我的文庫.ppt_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第9章 文件,本章我們討論的主要是數(shù)據(jù)文件。數(shù)據(jù)文件存儲(chǔ)的是程序運(yùn)行時(shí)所用到的數(shù)據(jù)。在實(shí)際應(yīng)用中,經(jīng)常涉及到需要重復(fù)使用的大量數(shù)據(jù),在這種情況下,如果每次都從鍵盤上輸入,一方面造成大量的人力、物力浪費(fèi),另一方面又增大了輸入出錯(cuò)的可能性。解決這種問題的常用方法是,把待輸入的大量數(shù)據(jù)預(yù)先準(zhǔn)確無誤地以文件的形式存儲(chǔ)到磁盤上,需要用到數(shù)據(jù)時(shí),從文件中讀出即可。同樣,我們也可把程序的運(yùn)行結(jié)果存到磁盤上,這樣既能長期保存數(shù)據(jù),又能做到數(shù)據(jù)共享。,退出,在VB中,按照文件的存取訪問方式,分為順序文件、隨機(jī)文件、二進(jìn)制文件。應(yīng)用程序訪問一個(gè)文件時(shí),應(yīng)根據(jù)文件包含什么類型的數(shù)據(jù),確定合適的訪問類型。VB為用戶提

2、供了多種處理文件的方法,具有較強(qiáng)的文件處理能力。 9.1 文件操作流程 9.2 順序文件 9.3 隨機(jī)文件 9.4 二進(jìn)制文件 9.5 文件操作常用函數(shù),9.1 文件操作流程,在VB中,對(duì)于順序文件、隨機(jī)文件、二進(jìn)制文件的操作通常都有3個(gè)步驟: (1)打開文件 (2)訪問文件 (3)關(guān)閉文件 本節(jié)僅對(duì)以上3個(gè)步驟作概念上的說明,具體的語句格式及使用在后續(xù)小節(jié)中介紹。,9.1.1 打開文件 文件操作的第一步是打開文件。在創(chuàng)建新文件或使用舊文件之前,必須先打開文件。打開文件的操作,會(huì)為這個(gè)文件在內(nèi)存中準(zhǔn)備一個(gè)讀寫時(shí)使用的緩沖區(qū),并且聲明文件在什么地方,叫什么名字,文件的處理方式。 9.1.2 訪問

3、文件 訪問文件是文件操作的第二步。所謂訪問文件,即對(duì)文件進(jìn)行讀/寫操作。從磁盤將數(shù)據(jù)送到內(nèi)存稱為“讀”,從內(nèi)存將數(shù)據(jù)存到磁盤稱為“寫”。 9.1.3 關(guān)閉文件 打開的文件使用(讀/寫)完后,必須關(guān)閉,否則會(huì)造成數(shù)據(jù)丟失。關(guān)閉文件會(huì)把文件緩沖區(qū)中的數(shù)據(jù)全部寫入磁盤,釋放掉該文件緩沖區(qū)占用的內(nèi)存。,9.2 順序文件,順序文件用于處理一般的文本文件,它是標(biāo)準(zhǔn)的ASCII文件。順序文件中各數(shù)據(jù)的寫入順序、在文件中的存放順序、和從文件中的讀出順序3者是一致的。 順序文件按行組織信息。每行由若干項(xiàng)組成,行的長度不固定,每行由回車換行符號(hào)結(jié)束。,9.2.1 順序文件的打開與關(guān)閉 在對(duì)順序文件進(jìn)行操作之前,必

4、須用Open語句打開要操作的文件。在對(duì)一個(gè)文件操作完成后,要用Close語句將它關(guān)閉。 1Open語句的一般格式 Open 文件名 For打開方式 As #文件號(hào) (1)文件名。 (2)打開方式包括以下3種。 Input Output Append,(3)文件號(hào)。是一個(gè)1511之間的整數(shù)。它用來代表所打開的文件,文件號(hào)可以是整數(shù)或數(shù)值型變量。 例如: Open d:shu1.dat For Input As #1 該語句以輸入方式打開文件shu1.dat,并指定文件號(hào)為1。 Open d:shu2.dat For Output As #5 該語句以輸出方式打開文件shu2.dat,即向文件sh

5、u2.dat進(jìn)行寫操作,并指定文件號(hào)為5。 Open d:shu3.dat For Append As #7 該語句以添加方式打開文件shu3.dat,即向文件shu3.dat添加數(shù)據(jù),并指定文件號(hào)為7。,2Close語句的一般格式 Close 文件號(hào)表列 例如: Close #1 關(guān)閉文件號(hào)為1的文件。 Close #2,#7,#8 關(guān)閉文件號(hào)為2,7,8的文件。 Close 關(guān)閉所有已打開的文件。,9.2.2 順序文件的寫操作 VB用Print語句或Write語句向順序文件寫入數(shù)據(jù)。創(chuàng)建一個(gè)新的順序文件或向一個(gè)已存在的順序文件中添加數(shù)據(jù),都是通過寫操作實(shí)現(xiàn)的。另外,順序文件也可由文本編輯器

6、(記事本、Word等)創(chuàng)建。 1Print語句 Print語句的一般格式: Print #文件號(hào) ,輸出表列,例如: Open d:shu2.dat For Output As #2 Print # 2, zhang;wang;li Print # 2, 78;99;67 Close #2 執(zhí)行上面的程序段后,寫入到文件中的數(shù)據(jù)如下: zhangwangli 78 99 67,2Write語句 用Write語句項(xiàng)文件寫入數(shù)據(jù)時(shí),與Print語句不同的是,Write語句能自動(dòng)在各數(shù)據(jù)項(xiàng)之間插入逗號(hào),并給各字符串加上雙引號(hào)。 Write語句的一般格式: Write #文件號(hào) ,輸出表列,例如: O

7、pen d:shua.dat For Output As #6 Write # 6, zhang;wang;li Write # 6, 78;99;67 Close #6 執(zhí)行上面的程序段后,寫入到文件中的數(shù)據(jù)如下: zhang,wang,li 78,99,67,9.2.3 順序文件的讀操作 順序文件的讀操作,就是從已存在的順序文件中讀取數(shù)據(jù)。在讀一個(gè)順序文件時(shí),首先要用Input方式將準(zhǔn)備讀的文件打開。VB提供了Input、Line Input語句和Input函數(shù)將順序文件的內(nèi)容讀入。Input函數(shù)將在9.4節(jié)中介紹。 1Input語句 Input語句一般格式: Input #文件號(hào),變量表

8、列,例如: Private Sub form_Click() Dim x$,y$,z$,a%,b%,c% Open c:_vbshua.dat For Input As #1 Input #1,x,y,z Input #1,a,b,c Print x,y,z Print a,b,c Print a + b + c Close #1 End Sub,如果順序文件shua.dat的內(nèi)容如下: zhang,wang,li 78,99,67 執(zhí)行Form_Click過程,在窗體上顯示的內(nèi)容為: zhang wang li 78 99 67 244,2Line Input語句 Line Input語句是

9、從打開的順序文件中讀取一行。 Line Input語句的一般格式: Line Input #文件號(hào),字符串變量 例如:如果順序文件shua.dat的內(nèi)容如下: zhang,wang,li 78,99,67 我們用Line Input語句將數(shù)據(jù)讀出并且把它顯示在文本框中。,Private Sub Command1_Click() Dim a$,b$ Open c:_vbshua.dat For Input As #2 Line Input #2,a Line Input #2,b Text1.Text = a & b End Sub 執(zhí)行以上過程,文本框中顯示的內(nèi)容為: zhang,wang,l

10、i78,99,67,9.3 隨機(jī)文件,使用順序文件有一個(gè)很大的缺點(diǎn),就是它必須順序訪問,即使明知所要的數(shù)據(jù)是在文件的末端,也要把前面的數(shù)據(jù)全部讀完才能取得該數(shù)據(jù)。而隨機(jī)文件則可直接快速訪問文件中的任意一條記錄,它的缺點(diǎn)是占用空間較大。 隨機(jī)文件由固定長度的記錄組成,一條記錄包含一個(gè)或多個(gè)字段。具有一個(gè)字段的記錄對(duì)應(yīng)于任一標(biāo)準(zhǔn)類型,比如整數(shù)或者定長字符串。具有多個(gè)字段的記錄對(duì)應(yīng)于用戶定義類型。隨機(jī)文件中每個(gè)記錄都有一個(gè)記錄號(hào),只要指出記錄號(hào),就可以對(duì)該文件進(jìn)行讀寫。,9.3.1 隨機(jī)文件的打開與關(guān)閉 在對(duì)一個(gè)隨機(jī)文件操作之前,也必須用Open語句打開文件,隨機(jī)文件的打開方式必須是Random方式

11、,同時(shí)要指明記錄的長度。與順序文件不同的是,隨機(jī)文件打開后,可同時(shí)進(jìn)行寫入與讀出操作。 Open語句的一般格式: Open 文件名 For Random As #文件號(hào) Len=記錄長度,說明: 記錄長度是一條記錄所占的字節(jié)數(shù)??梢杂肔en函數(shù)獲得。 例如,定義以下記錄: Type student Name As String*10 Age As Integer End Type 就可以用下面的語句打開: Open d:Test.dat For Random As #9 Len=Len(student) 隨機(jī)文件的關(guān)閉同順序文件一樣,用Close 語句。,9.3.2 隨機(jī)文件的寫操作 用Put

12、語句進(jìn)行隨機(jī)文件的寫操作。 Put語句一般格式為: Put # 文件號(hào),記錄號(hào),變量 說明: Put語句把變量的內(nèi)容寫入文件中指定的記錄位置。記錄號(hào)是一個(gè)大于或等于1的整數(shù)。 例如,Put # 1,9,t 表示將變量t的內(nèi)容送到1號(hào)文件中的第9號(hào)記錄去。,9.3.3 隨機(jī)文件的讀操作 用Get語句進(jìn)行隨機(jī)文件的讀操作。 Get語句格式一般為: Get # 文件號(hào),記錄號(hào),變量 說明: Get語句把文件中由記錄號(hào)指定的記錄內(nèi)容讀入到指定的變量中。 例如,Get # 2,3,u 表示將2號(hào)文件中的第3條記錄讀出后存放到變量u中。,9.4 二進(jìn)制文件,二進(jìn)制文件被看作是字節(jié)順序排列的。由于對(duì)二進(jìn)制文

13、件的讀寫是以字節(jié)為單位進(jìn)行的,所以能對(duì)文件進(jìn)行完全的控制。如果知道文件中數(shù)據(jù)的組織結(jié)構(gòu),則任何文件都可以當(dāng)作二進(jìn)制文件來處理使用。,9.4.1 二進(jìn)制文件的打開與關(guān)閉 二進(jìn)制文件的打開用Open語句。其格式為: Open 文件名 For Binary As #文件號(hào) 使用Close語句關(guān)閉二進(jìn)制文件。 9.4.2 二進(jìn)制文件的讀/寫操作 對(duì)二進(jìn)制文件的讀/寫同隨機(jī)文件一樣用Put和Get語句。它們的格式如下: Put # 文件號(hào),位置,變量 Get # 文件號(hào),位置,變量,9.5 文件操作常用函數(shù),1LOF函數(shù) 格式:LOF(文件號(hào)) 功能:返回一個(gè)已打開文件的大小,類型為Long,單位是字節(jié)

14、。 2FileLen函數(shù) 格式:FileLen(文件名) 功能:返回一個(gè)未打開文件的大小,類型為long,單位是字節(jié)。文件名可以包含驅(qū)動(dòng)器以及目錄。,3EOF函數(shù) 格式:EOF(文件號(hào)) 功能:用于判斷讀取的位置是否已到達(dá)文件尾。當(dāng)讀到文件尾時(shí),返回True,否則返回False。對(duì)于順序文件,用EOF 函數(shù)測試是否到達(dá)文件尾;對(duì)于隨機(jī)文件和二進(jìn)制文件,如果讀不到最后一個(gè)記錄的全部數(shù)據(jù),返回True,否則返回False。對(duì)于以O(shè)utput 方式打開的文件,EOF 函數(shù)總是返回True。,4LOC函數(shù) 格式:LOC(文件號(hào)) 功能:返回文件當(dāng)前讀/寫的位置,類型為Long。 對(duì)于隨機(jī)文件,返回最近讀/寫的記錄

溫馨提示

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