




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年環(huán)保優(yōu)先型礦山開(kāi)采權(quán)承包及資源評(píng)估服務(wù)合同
- 智能語(yǔ)音助手bot系統(tǒng)深度定制與集成解決方案合同
- 2025年智能醫(yī)療設(shè)備全面維護(hù)與故障排除服務(wù)合同
- 2025年度智能穿戴特種針織材料定制銷(xiāo)售合同
- 12-Methylicosanoyl-CoA-12-Methylicosanoyl-coenzyme-A-生命科學(xué)試劑-MCE
- 2025年接觸網(wǎng)中級(jí)工練習(xí)題庫(kù)與參考答案
- 2025年高速鐵路冷鏈運(yùn)輸貨物安全及多式聯(lián)運(yùn)服務(wù)協(xié)議
- 2025年度工業(yè)廢水處理技術(shù)引進(jìn)與實(shí)施合同
- 2025年綠色環(huán)保型藥品冷鏈運(yùn)輸與倉(cāng)儲(chǔ)綜合管理服務(wù)協(xié)議
- 2025年鈑金噴漆工程品牌推廣及全國(guó)施工承包服務(wù)合同
- 2025年幼兒園指南與評(píng)估指南測(cè)試題及答案
- 2025年健康杯愛(ài)國(guó)衛(wèi)生知識(shí)競(jìng)賽試題及答案
- 膀胱多處惡性腫瘤的個(gè)案護(hù)理
- 2025年貴州貴陽(yáng)市水務(wù)環(huán)境集團(tuán)有限公司招聘27人筆試參考題庫(kù)附帶答案詳解(10套)
- 2025屆中國(guó)南方航空“明珠優(yōu)才管培生”全球招聘30人筆試參考題庫(kù)附帶答案詳解(10套)
- 2025新疆吐魯番市法檢系統(tǒng)面向社會(huì)招聘聘用制書(shū)記員23人考前自測(cè)高頻考點(diǎn)模擬試題參考答案詳解
- 《阿房宮賦》課件 統(tǒng)編版高中語(yǔ)文必修下冊(cè)
- 新《治安管理處罰法》培訓(xùn)考試題庫(kù)附答案
- 銀行聯(lián)網(wǎng)核查管理辦法
- 2025江蘇蘇州昆山國(guó)創(chuàng)投資集團(tuán)有限公司第一期招聘17人筆試參考題庫(kù)附帶答案詳解版
- 展會(huì)相關(guān)業(yè)務(wù)管理辦法
評(píng)論
0/150
提交評(píng)論