版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ì)(如磁盤)上的。外存內(nèi)存讀input寫output文件8.1.1文件的基本概念VisualBasic提供了從磁盤、磁帶等外部存儲(chǔ)設(shè)備上進(jìn)行數(shù)據(jù)輸入輸出的功能。通過直接處理文件,應(yīng)用程序可以極其方便地創(chuàng)建、復(fù)制、存儲(chǔ)大量數(shù)據(jù),一次可以訪問多組數(shù)據(jù),還可以與其它應(yīng)用程序共享數(shù)據(jù)。
文件是一組相關(guān)信息的集合。對(duì)于計(jì)算機(jī)而言,文件是指存放在外部設(shè)備如磁盤上的一系列相關(guān)的字節(jié)。當(dāng)應(yīng)用程序訪問一個(gè)文件時(shí),必須假定這些字節(jié)所表示的是什么(是字符、整數(shù)、字符串還是數(shù)據(jù)記錄等等)。
8.1.2文件類型
順序文件(文本文件)隨機(jī)文件(記錄文件)二進(jìn)制文件(字節(jié)文件)
順序文件的概念順序文件實(shí)際上是一系列的ASCII碼格式的文本行。文件中的數(shù)據(jù)是按順序組織的,與文檔中出現(xiàn)的順序相同。若要讀出第100個(gè)記錄,必須首先讀出前面的99個(gè)記錄,寫入亦如此。記錄1記錄2…記錄N文件結(jié)束標(biāo)志隨機(jī)文件的概念以隨機(jī)存取(RandomAccess)方式存取的文件稱為隨機(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ù)來定位數(shù)據(jù),允許程序按所需的任何方式組織和訪問數(shù)據(jù),二進(jìn)制文件可允許對(duì)文件中各字節(jié)數(shù)據(jù)進(jìn)行存取訪問和改變。8.1.3文件操作的一般步驟
打開文件
文件讀/寫
關(guān)閉文件
8.1.4文件操作的語句與函數(shù)1.Open語句
Open文件名[FOR模式][Access存取類型][鎖定]AS[#]文件號(hào)[Len=記錄長(zhǎng)度]
2.Close語句
Close[[#]文件號(hào)][,[#]文件號(hào)]……
除了可用Close語句關(guān)閉文件外,當(dāng)程序結(jié)束時(shí),所有打開的文件也會(huì)自動(dòng)關(guān)閉。3.Reset語句Reset語句的功能是關(guān)閉所有用Open語句打開的文件。
Reset
4.文件操作函數(shù)
Eof(文件號(hào))FileLen(文件名)Lof(文件號(hào))Loc(文件號(hào))FreeFile[(文件號(hào)范圍)]8.2使用傳統(tǒng)方法處理文件
8.2.1順序文件1.順序文件的寫操作2.順序文件的讀操作3.使用外部程序處理順序文件1.順序文件的寫操作打開文件
Open文件名ForOutputAs[#]文件號(hào)
Open文件名ForAppendAs[#]文件號(hào)1.順序文件的寫操作Print#語句
Print#文件號(hào),[輸出列表]Write#語句
Write#文件號(hào),[輸出列表]2.順序文件的讀操作Input#語句
Input#文件號(hào)[,變量表]LineInput#語句
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ù)來測(cè)試是否到文件尾,對(duì)于隨機(jī)文件和二進(jìn)制文件,當(dāng)最近一個(gè)執(zhí)行GET語句無法讀到一個(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è)打開文件中讀寫的位置。對(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è)文本文件,通過Print#或Write#語句建立的文件可以使用“記事本”(文件長(zhǎng)度不超過64KB)或“寫字板”將其打開,自然也可以使用這些文本處理軟件對(duì)其進(jìn)行編輯處理。用戶完全可以使用上述軟件把一批需要程序處理的數(shù)據(jù)寫入一個(gè)文件并保存,再使用程序打開該文件讀取數(shù)據(jù)進(jìn)行各種處理。
8.2.2隨機(jī)文件隨機(jī)文件的特點(diǎn)
1)隨機(jī)文件的記錄是定長(zhǎng)的;2)記錄可包含有一個(gè)或多個(gè)字段(又稱為域)。只有一個(gè)字段的記錄可以是任何一個(gè)標(biāo)準(zhǔn)類型;如果記錄是由多個(gè)字段組成,則記錄必須是用戶自定義類型;
3)隨機(jī)文件打開后,既可讀又可寫,可根據(jù)記錄號(hào)訪問文件中任何一個(gè)記錄,無需按順序進(jìn)行。8.2.2隨機(jī)文件2.
變量聲明
在標(biāo)準(zhǔn)模塊中聲明自定義類型:
TypeStudent_Score NameAsString*8Student_IdAsString*6EnglishAsIntegerMathAsIntegerComputerAsInteger
EndType
8.2.2隨機(jī)文件2.
變量聲明
在處理包含多字段記錄的隨機(jī)文件時(shí),除了需要定義記錄類型外,還必須在相應(yīng)的程序段中聲明應(yīng)用程序在處理隨機(jī)文件時(shí)所需要的變量。例如:在處理學(xué)生考試成績(jī)的隨機(jī)文件的窗體模塊中,可使用下面語句定義變量:
PrivateScoreASStudent_Score
8.2.2隨機(jī)文件3.打開隨機(jī)文件使用下面的Open語句打開一個(gè)隨機(jī)文件:Open文件名[ForRundom]AS[#]文件號(hào)[Len=記錄長(zhǎng)度]因?yàn)椤癛andom”是缺省訪問模式,因此ForRandom子句可以缺省;OPEN語句中要指明記錄長(zhǎng)度,記錄長(zhǎng)度的缺省值是記錄長(zhǎng)度例如下面的程序片斷打開一個(gè)名為“考試成績(jī)”的隨機(jī)文件:DimFilenumASIntegeDimReclengthASLongDimScoreASStudent_ScoreFilenum=FreeFileReclength=Len(Score)Open“考試成績(jī)”AS#FilenumLen=Reclength
8.2.2隨機(jī)文件4.隨機(jī)文件的寫與讀
隨機(jī)文件的寫語句:
Put#文件號(hào),[記錄號(hào)],自定義變量名
隨機(jī)文件的讀語句:
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)制訪問模式具有最大的靈活性。二進(jìn)制存取可以獲取任何一個(gè)文件的原始字節(jié)。任何類型的文件(順序文件或隨機(jī)文件)都可以二進(jìn)制訪問模式打開。
8.2.3二進(jìn)制文件2.二進(jìn)制文件的打開
open“文件名”ForBinaryAs[#]文件號(hào)
8.2.3二進(jìn)制文件3.二進(jìn)制文件的讀寫二進(jìn)制文件的寫語句:
Put#文件號(hào),[字節(jié)號(hào)],變量名
二進(jìn)制文件的讀語句:
Get#文件號(hào),[字節(jié)號(hào)],變量名
Open“文件名”[For
模式][Access
操作類型][鎖定]
As[#]文件號(hào)[Len=記錄長(zhǎng)度]1.模式有三種:OUTPUT;INPUT;APPEND2.操作類型有三種:READ;WRITE;READWRITE3.鎖定有四種類型:Shared(缺?。?;LockRead; LockWrite;LockReadWrite4.文件號(hào)是一個(gè)介于1~511之間的整數(shù)5.記錄長(zhǎng)度是一個(gè)小于或等于32767的整數(shù)將數(shù)據(jù)寫入磁盤文件所用的命令是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#語句示例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#語句是將數(shù)據(jù)送到緩沖區(qū),關(guān)閉文件時(shí)才將緩沖區(qū)中數(shù)據(jù)全部寫入文件。關(guān)閉文件所用的命令是Close,其形式如下:
Close[[#]文件號(hào)][,[#]文件號(hào)]…Print語句或Write語句Close語句內(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)需要打開文件或保存數(shù)據(jù)時(shí),需要顯示、了解有關(guān)磁盤驅(qū)動(dòng)器、目錄和文件等信息。VisualBasic提供了驅(qū)動(dòng)器列表框(DriveListBox)、目錄列表框(DirListBox)和文件列表框(FileListBox)等三個(gè)控件,通??蓪⑺鼈兘M合起來使用,創(chuàng)建與文件操作有關(guān)的自定義對(duì)話框。8.3.1驅(qū)動(dòng)器列表框Drive屬性該屬性不能在設(shè)計(jì)時(shí)設(shè)置,只能在程序里設(shè)置或引用。其形式如下:
[對(duì)象.]Drive[=drive]
對(duì)象:驅(qū)動(dòng)器列表框名稱
driv
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職第一學(xué)年(園林工程技術(shù))植物造景設(shè)計(jì)試題及答案
- 2026年計(jì)算機(jī)應(yīng)用(辦公自動(dòng)化)試題及答案
- 2025年中職(烹飪工藝與營(yíng)養(yǎng))中式熱菜制作試題及答案
- 道路圍墻大門施工組織設(shè)計(jì)
- 貴州省貴陽市南明區(qū)2025年八年級(jí)上學(xué)期期末測(cè)試物理試題附答案
- 2026年部分大專可報(bào)不限專業(yè)武漢大學(xué)人民醫(yī)院招聘7人備考題庫參考答案詳解
- 軟件框架開發(fā)技術(shù)(SSM)期末考試試卷(6)及答案
- 2025 小學(xué)四年級(jí)思想品德下冊(cè)傳統(tǒng)節(jié)日習(xí)俗優(yōu)化調(diào)查課件
- 養(yǎng)老院老人生活照顧人員行為規(guī)范制度
- 養(yǎng)老院老人健康飲食營(yíng)養(yǎng)師職業(yè)發(fā)展規(guī)劃制度
- 2026屆四川省瀘州高級(jí)中學(xué)高一生物第一學(xué)期期末經(jīng)典試題含解析
- 2026標(biāo)準(zhǔn)版離婚協(xié)議書-無子女無共同財(cái)產(chǎn)債務(wù)版
- 【期末必刷選擇題100題】(新教材)統(tǒng)編版八年級(jí)道德與法治上學(xué)期專項(xiàng)練習(xí)選擇題100題(含答案與解析)
- 建筑公司工資薪酬管理制度(3篇)
- 2025至2030中國(guó)疝氣修補(bǔ)術(shù)行業(yè)調(diào)研及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 建設(shè)工程測(cè)繪驗(yàn)線標(biāo)準(zhǔn)報(bào)告模板
- 2024-2025學(xué)年福建省廈門市雙十中七年級(jí)(上)期末英語試卷
- 漢語言本科畢業(yè)論文范文模板
- 2025年協(xié)警輔警招聘考試題庫(新)及答案
- 鋼結(jié)構(gòu)施工優(yōu)化策略研究
- 車間輪崗工作總結(jié)
評(píng)論
0/150
提交評(píng)論