Visual Basic程序設(shè)計(jì)第二版課件第8章_第1頁(yè)
Visual Basic程序設(shè)計(jì)第二版課件第8章_第2頁(yè)
Visual Basic程序設(shè)計(jì)第二版課件第8章_第3頁(yè)
Visual Basic程序設(shè)計(jì)第二版課件第8章_第4頁(yè)
Visual Basic程序設(shè)計(jì)第二版課件第8章_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

8.1文件概述

文件是存儲(chǔ)在外部介質(zhì)上的數(shù)據(jù)的集合。計(jì)算機(jī)處理的大量數(shù)據(jù)一般都是以文件的形式存放在外部介質(zhì)(如磁盤(pán))上的。外存內(nèi)存讀input寫(xiě)output文件8.1.1文件的基本概念VisualBasic提供了從磁盤(pán)、磁帶等外部存儲(chǔ)設(shè)備上進(jìn)行數(shù)據(jù)輸入輸出的功能。通過(guò)直接處理文件,應(yīng)用程序可以極其方便地創(chuàng)建、復(fù)制、存儲(chǔ)大量數(shù)據(jù),一次可以訪(fǎng)問(wèn)多組數(shù)據(jù),還可以與其它應(yīng)用程序共享數(shù)據(jù)。

文件是一組相關(guān)信息的集合。對(duì)于計(jì)算機(jī)而言,文件是指存放在外部設(shè)備如磁盤(pán)上的一系列相關(guān)的字節(jié)。當(dāng)應(yīng)用程序訪(fǎng)問(wèn)一個(gè)文件時(shí),必須假定這些字節(jié)所表示的是什么(是字符、整數(shù)、字符串還是數(shù)據(jù)記錄等等)。

8.1.2文件類(lèi)型

順序文件(文本文件)隨機(jī)文件(記錄文件)二進(jìn)制文件(字節(jié)文件)

順序文件的概念順序文件實(shí)際上是一系列的ASCII碼格式的文本行。文件中的數(shù)據(jù)是按順序組織的,與文檔中出現(xiàn)的順序相同。若要讀出第100個(gè)記錄,必須首先讀出前面的99個(gè)記錄,寫(xiě)入亦如此。記錄1記錄2…記錄N文件結(jié)束標(biāo)志隨機(jī)文件的概念以隨機(jī)存?。≧andomAccess)方式存取的文件稱(chēng)為隨機(jī)文件。隨機(jī)文件是由一組長(zhǎng)度相等的記錄組成。要讀第100個(gè)記錄,可按記錄號(hào)100直接讀取。#1記錄1#2記錄2…#N記錄N二進(jìn)制文件的概念文件中數(shù)據(jù)是以二進(jìn)制格式進(jìn)行編碼存儲(chǔ)的。它以字節(jié)數(shù)來(lái)定位數(shù)據(jù),允許程序按所需的任何方式組織和訪(fǎng)問(wèn)數(shù)據(jù),二進(jìn)制文件可允許對(duì)文件中各字節(jié)數(shù)據(jù)進(jìn)行存取訪(fǎng)問(wèn)和改變。8.1.3文件操作的一般步驟

打開(kāi)文件

文件讀/寫(xiě)

關(guān)閉文件

8.1.4文件操作的語(yǔ)句與函數(shù)1.Open語(yǔ)句

Open文件名[FOR模式][Access存取類(lèi)型][鎖定]AS[#]文件號(hào)[Len=記錄長(zhǎng)度]

2.Close語(yǔ)句

Close[[#]文件號(hào)][,[#]文件號(hào)]……

除了可用Close語(yǔ)句關(guān)閉文件外,當(dāng)程序結(jié)束時(shí),所有打開(kāi)的文件也會(huì)自動(dòng)關(guān)閉。3.Reset語(yǔ)句Reset語(yǔ)句的功能是關(guān)閉所有用Open語(yǔ)句打開(kāi)的文件。

Reset

4.文件操作函數(shù)

Eof(文件號(hào))FileLen(文件名)Lof(文件號(hào))Loc(文件號(hào))FreeFile[(文件號(hào)范圍)]8.2使用傳統(tǒng)方法處理文件

8.2.1順序文件1.順序文件的寫(xiě)操作2.順序文件的讀操作3.使用外部程序處理順序文件1.順序文件的寫(xiě)操作打開(kāi)文件

Open文件名ForOutputAs[#]文件號(hào)

Open文件名ForAppendAs[#]文件號(hào)1.順序文件的寫(xiě)操作Print#語(yǔ)句

Print#文件號(hào),[輸出列表]Write#語(yǔ)句

Write#文件號(hào),[輸出列表]2.順序文件的讀操作Input#語(yǔ)句

Input#文件號(hào)[,變量表]LineInput#語(yǔ)句

LineInput#文件號(hào),字符變量名2.順序文件的讀操作Input函數(shù)

Input函數(shù)的調(diào)用形式為:

Input(n,[#]文件號(hào))

其中:n是任意合法的數(shù)值型表達(dá)式,指明從文件中一次讀出字符的個(gè)數(shù)。

EOF函數(shù)EOF函數(shù)返回一個(gè)表示文件指針是否到達(dá)文件末尾的標(biāo)志。如果到了文件尾,EOF函數(shù)返回TRUE(-1),否則返回FALSE(0)。對(duì)于順序文件用EOF函數(shù)來(lái)測(cè)試是否到文件尾,對(duì)于隨機(jī)文件和二進(jìn)制文件,當(dāng)最近一個(gè)執(zhí)行GET語(yǔ)句無(wú)法讀到一個(gè)完整記錄時(shí)返回TRUE(-1),否則返回FALSE(0)。LOF函數(shù)LOF函數(shù)將返回某文件的字節(jié)數(shù)。例如,LOF(1)返回#1文件的長(zhǎng)度,如果返回0值,則表示該文件是一個(gè)空文件。例如:

DimFileLength Open"TESTFILE"ForInputAs#1 FileLength=LOF(1) Close#1LOC函數(shù)

返回在一個(gè)打開(kāi)文件中讀寫(xiě)的位置。對(duì)隨機(jī)文件,返回上一次對(duì)文件進(jìn)行讀出或?qū)懭氲挠涗浱?hào)。對(duì)順序文件,返回文件中當(dāng)前字節(jié)位置除以128的值。但是,對(duì)于順序文件而言,不會(huì)使用Loc的返回值,也不需要使用Loc的返回值。對(duì)二進(jìn)制文件,返回上一次讀出或?qū)懭氲淖止?jié)位置。3.使用外部程序處理順序文件

由于順序文件實(shí)質(zhì)就是一個(gè)文本文件,通過(guò)Print#或Write#語(yǔ)句建立的文件可以使用“記事本”(文件長(zhǎng)度不超過(guò)64KB)或“寫(xiě)字板”將其打開(kāi),自然也可以使用這些文本處理軟件對(duì)其進(jìn)行編輯處理。用戶(hù)完全可以使用上述軟件把一批需要程序處理的數(shù)據(jù)寫(xiě)入一個(gè)文件并保存,再使用程序打開(kāi)該文件讀取數(shù)據(jù)進(jìn)行各種處理。

8.2.2隨機(jī)文件隨機(jī)文件的特點(diǎn)

1)隨機(jī)文件的記錄是定長(zhǎng)的;2)記錄可包含有一個(gè)或多個(gè)字段(又稱(chēng)為域)。只有一個(gè)字段的記錄可以是任何一個(gè)標(biāo)準(zhǔn)類(lèi)型;如果記錄是由多個(gè)字段組成,則記錄必須是用戶(hù)自定義類(lèi)型;

3)隨機(jī)文件打開(kāi)后,既可讀又可寫(xiě),可根據(jù)記錄號(hào)訪(fǎng)問(wèn)文件中任何一個(gè)記錄,無(wú)需按順序進(jìn)行。8.2.2隨機(jī)文件2.

變量聲明

在標(biāo)準(zhǔn)模塊中聲明自定義類(lèi)型:

TypeStudent_Score NameAsString*8Student_IdAsString*6EnglishAsIntegerMathAsIntegerComputerAsInteger

EndType

8.2.2隨機(jī)文件2.

變量聲明

在處理包含多字段記錄的隨機(jī)文件時(shí),除了需要定義記錄類(lèi)型外,還必須在相應(yīng)的程序段中聲明應(yīng)用程序在處理隨機(jī)文件時(shí)所需要的變量。例如:在處理學(xué)生考試成績(jī)的隨機(jī)文件的窗體模塊中,可使用下面語(yǔ)句定義變量:

PrivateScoreASStudent_Score

8.2.2隨機(jī)文件3.打開(kāi)隨機(jī)文件使用下面的Open語(yǔ)句打開(kāi)一個(gè)隨機(jī)文件:Open文件名[ForRundom]AS[#]文件號(hào)[Len=記錄長(zhǎng)度]因?yàn)椤癛andom”是缺省訪(fǎng)問(wèn)模式,因此ForRandom子句可以缺??;OPEN語(yǔ)句中要指明記錄長(zhǎng)度,記錄長(zhǎng)度的缺省值是記錄長(zhǎng)度例如下面的程序片斷打開(kāi)一個(gè)名為“考試成績(jī)”的隨機(jī)文件:DimFilenumASIntegeDimReclengthASLongDimScoreASStudent_ScoreFilenum=FreeFileReclength=Len(Score)Open“考試成績(jī)”AS#FilenumLen=Reclength

8.2.2隨機(jī)文件4.隨機(jī)文件的寫(xiě)與讀

隨機(jī)文件的寫(xiě)語(yǔ)句:

Put#文件號(hào),[記錄號(hào)],自定義變量名

隨機(jī)文件的讀語(yǔ)句:

Get#文件號(hào),[記錄號(hào)],自定義變量名

8.2.2隨機(jī)文件5.記錄的增加與刪除 增加: 最后一條記錄的記錄號(hào)=文件長(zhǎng)度/記錄長(zhǎng)度

刪除: 利用臨時(shí)文件8.2.3二進(jìn)制文件1.二進(jìn)制文件的特點(diǎn)

二進(jìn)制訪(fǎng)問(wèn)模式具有最大的靈活性。二進(jìn)制存取可以獲取任何一個(gè)文件的原始字節(jié)。任何類(lèi)型的文件(順序文件或隨機(jī)文件)都可以二進(jìn)制訪(fǎng)問(wèn)模式打開(kāi)。

8.2.3二進(jìn)制文件2.二進(jìn)制文件的打開(kāi)

open“文件名”ForBinaryAs[#]文件號(hào)

8.2.3二進(jìn)制文件3.二進(jìn)制文件的讀寫(xiě)二進(jìn)制文件的寫(xiě)語(yǔ)句:

Put#文件號(hào),[字節(jié)號(hào)],變量名

二進(jìn)制文件的讀語(yǔ)句:

Get#文件號(hào),[字節(jié)號(hào)],變量名

Open“文件名”[For

模式][Access

操作類(lèi)型][鎖定]

As[#]文件號(hào)[Len=記錄長(zhǎng)度]1.模式有三種:OUTPUT;INPUT;APPEND2.操作類(lèi)型有三種:READ;WRITE;READWRITE3.鎖定有四種類(lèi)型:Shared(缺省);LockRead; LockWrite;LockReadWrite4.文件號(hào)是一個(gè)介于1~511之間的整數(shù)5.記錄長(zhǎng)度是一個(gè)小于或等于32767的整數(shù)將數(shù)據(jù)寫(xiě)入磁盤(pán)文件所用的命令是WRITE或PRINT命令。Print#文件號(hào),[輸出列表]

輸出列表:

[{Spc(n)|Tab[(n)]}][表達(dá)式列表][;|,]2.Write#文件號(hào),[輸出列表]

輸出列表:一般是指用“,”分隔的數(shù)值表達(dá)式或字符串表達(dá)式,如:

Write#1,”O(jiān)ne”,“Two”,123Print命令與Write命令的區(qū)別:

Write是以緊湊格式存放,即在數(shù)據(jù)項(xiàng)之間插入“,”例5.1例5.1Print#語(yǔ)句示例Open"TESTFILE"ForOutputAs#1Print#1,"Thisisatest"Print#1,Print#1,"Zone1";Tab;"Zone2"Print#1,"Hello";"";"World"Print#1,Spc(5);"5leadingspaces"Print#1,Tab(10);"Hello"Close#1TESTFILE文件內(nèi)容ThisisatestZone1Zone2HelloWorld5leadingspacesHello內(nèi)存數(shù)據(jù)區(qū)Print#或Write#語(yǔ)句是將數(shù)據(jù)送到緩沖區(qū),關(guān)閉文件時(shí)才將緩沖區(qū)中數(shù)據(jù)全部寫(xiě)入文件。關(guān)閉文件所用的命令是Close,其形式如下:

Close[[#]文件號(hào)][,[#]文件號(hào)]…Print語(yǔ)句或Write語(yǔ)句Close語(yǔ)句內(nèi)存緩沖區(qū)數(shù)據(jù)文件對(duì)數(shù)據(jù)文件的讀操作,有三種格式:

INPUT#文件號(hào),變量列表

LINEINPUT#文件號(hào),字符串變量

INPUT$(讀取字符數(shù),#文件號(hào))與讀文件有關(guān)的三個(gè)重要函數(shù):

1.LOF函數(shù)

2.LOC函數(shù)

3.EOF函數(shù)8.3使用文件系統(tǒng)控制處理文件8.3.1驅(qū)動(dòng)器列表框8.3.2目錄列表框8.3.3文件列表框

文件管理控件

當(dāng)需要打開(kāi)文件或保存數(shù)據(jù)時(shí),需要顯示、了解有關(guān)磁盤(pán)驅(qū)動(dòng)器、目錄和文件等信息。VisualBasic提供了驅(qū)動(dòng)器列表框(DriveListBox)、目錄列表框(DirListBox)和文件列表框(FileListBox)等三個(gè)控件,通常可將它們組合起來(lái)使用,創(chuàng)建與文件操作有關(guān)的自定義對(duì)話(huà)框。8.3.1驅(qū)動(dòng)器列表框Drive屬性該屬性不能在設(shè)計(jì)時(shí)設(shè)置,只能在程序里設(shè)置或引用。其形式如下:

[對(duì)象.]Drive[=drive]

對(duì)象:驅(qū)動(dòng)器列表框名稱(chēng)

driv

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論