第九章 文件系統(tǒng)1_第1頁(yè)
第九章 文件系統(tǒng)1_第2頁(yè)
第九章 文件系統(tǒng)1_第3頁(yè)
第九章 文件系統(tǒng)1_第4頁(yè)
第九章 文件系統(tǒng)1_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第9章文件第9章文件本章要點(diǎn):掌握文件系統(tǒng)控件;掌握VB中文件的概念、種類及其結(jié)構(gòu);掌握順序文件的操作:打開、讀/寫、關(guān)閉;了解文件操作的常用函數(shù)。29.1文件系統(tǒng)的概念文件:存儲(chǔ)在外部介質(zhì)上數(shù)據(jù)的集合。按名存取磁盤文件是由數(shù)據(jù)記錄組成。記錄是計(jì)算機(jī)處理數(shù)據(jù)的基本單位數(shù)據(jù)項(xiàng)學(xué)號(hào)

姓名

數(shù)學(xué)成績(jī)

語(yǔ)文成績(jī)

物理成績(jī)

總分

39.1文件系統(tǒng)的概念文件分類根據(jù)文件的存取方式及其組成結(jié)構(gòu),將文件分成3種類型:(1)順序文件(2)隨機(jī)文件(3)二進(jìn)制文件4文件分類順序文件順序文件(SequentialFile)是普通的文本文件。順序文件中的記錄按順序一個(gè)接一個(gè)地排列。讀寫文件存取記錄時(shí),都必須按記錄順序逐個(gè)進(jìn)行。一行一條記錄(一項(xiàng)數(shù)據(jù)),記錄可長(zhǎng)可短,以“換行”字符為分隔符號(hào)。5文件分類隨機(jī)文件(RandomAccessFile)是可以按任意次序讀寫的文件,其中每個(gè)記錄的長(zhǎng)度必須相同。在這種文件結(jié)構(gòu)中,每個(gè)記錄都有其唯一的一個(gè)記錄號(hào),讀取數(shù)據(jù)時(shí),只要知道記錄號(hào),便可以直接讀取記錄。記錄1記錄2記錄3……記錄N6文件分類二進(jìn)制文件 直接把二進(jìn)制碼存放在文件中 在程序中可以按任何方式組織和訪問數(shù)據(jù),對(duì)文件中各字節(jié)數(shù)據(jù)直接進(jìn)行存取。任何文件都可以用二進(jìn)制模式訪問。79.2文件系統(tǒng)控件驅(qū)動(dòng)器列表框目錄列表框文件列表框。89.2.1驅(qū)動(dòng)器列表(DriveListBox)Drive屬性:在運(yùn)行時(shí)返回或設(shè)置所選定的驅(qū)動(dòng)器。該屬性在設(shè)計(jì)時(shí)不可用,只能在程序中被引用或設(shè)置。[驅(qū)動(dòng)器列表框名.]Drive[=驅(qū)動(dòng)器名]例:Drive1.drive=“D:”99.2.1驅(qū)動(dòng)器列表(DriveListBox)Change事件:程序運(yùn)行時(shí),當(dāng)選擇一個(gè)新的驅(qū)動(dòng)器或通過(guò)代碼改變Drive屬性的設(shè)置時(shí)觸發(fā)。例9-1109.2.2目錄列表框(DirListBox)顯示當(dāng)前驅(qū)動(dòng)器目錄結(jié)構(gòu)及當(dāng)前目錄下的所有子文件夾(子目錄),供用戶選擇其中一個(gè)目錄作為當(dāng)前目錄,如圖119.2.2目錄列表框(DirListBox)Path屬性:返回或設(shè)置當(dāng)前路徑。格式:目錄列表框名.Path=路徑名字符串例:Dir1.Path="C:\Mydir"129.2.2目錄列表框(DirListBox)當(dāng)前目錄緊鄰其上的目錄再上一個(gè)139.2.2目錄列表框(DirListBox)Change事件在程序運(yùn)行時(shí),每當(dāng)改變當(dāng)前目錄,即目錄列表框的Path屬性發(fā)生變化時(shí)觸發(fā)。例9-2149.2.3文件列表框(FilelistBox)Path屬性顯示該路徑下的文件。重新設(shè)置Path屬性引發(fā)PathChange事件。例:File1.path=“C:\Windows”159.2.3文件列表框(FilelistBox)Pattern屬性返回或設(shè)置文件列表框所顯示的文件類型。缺省時(shí)表示所有文件。例:File1.Pattern="*.txt"File1.Pattern="???.txt"File1.Pattern="*.txt

;*.doc"169.2.3文件列表框(FilelistBox)FileName屬性:返回或設(shè)置被選定文件的文件名。該屬性設(shè)計(jì)時(shí)不可用。Filename屬性不包括路徑名。179.2.3文件列表框(FilelistBox)FileName屬性:例:從文件列表框(File1)中獲得全路徑的文件名Fs,代碼如下:

IfRight(file1.path,1)="\"Then

Fs=file1.path&

file1.filename

Else

Fs=file1.path&"\"&

file1.filename

EndIf189.2.3文件列表框(FilelistBox)Click、DblClick事件例:?jiǎn)螕糨敵鑫募?。SubFile1_Click()

MsgBoxFile1.FileNameEndSub199.2.3文件列表框(FilelistBox)例:雙擊執(zhí)行可執(zhí)行程序(記事本notepad.exe)SubFile1_DblClick() DimnameAsString IfRight(file1.path,1)="\"Then name=file1.path&file1.filename Else name=file1.path&"\"&file1.filename EndIfn=Shell(name,1)'執(zhí)行程序EndSub20三種文件系統(tǒng)控件組合應(yīng)用例:顯示計(jì)算機(jī)中的文件系統(tǒng)。21例:顯示計(jì)算機(jī)中的文件系統(tǒng)。PrivateSubDrive1_Change() Dir1.Path=Drive1.DriveEndSub

PrivateSubDir1_Change() File1.Path=Dir1.PathEndSub22例:顯示計(jì)算機(jī)中的文件系統(tǒng)。編寫組合框的相關(guān)代碼。PrivateSubForm_Load() Combo1.AddItem"*.*" Combo1.AddItem"*.frm" Combo1.AddItem"*.bmp" Combo1.AddItem"*.txt" Combo1.ListIndex=0EndSubPrivateSubCombo1_Click() File1.Pattern=Trim(Combo1.Text)EndSub239.3順序文件的打開打開文件:Open文件名For模式As[#]文件號(hào)模式:指定文件的打開方式

INPUT:只讀操作OUTPUT:只寫操作

APPEND:追加到文件未尾249.3順序文件的打開文件號(hào)介于1~511之間的整數(shù)打開文件時(shí)指定文件號(hào),文件關(guān)閉后釋放文件號(hào)。可用FreeFile函數(shù)來(lái)取得一個(gè)當(dāng)前可供使用的文件號(hào)。Open文件名For模式As[#]文件號(hào)OPEN"C:\S.txt

"FOROUTPUTAS#1DimnFileAsIntegerNFile=FreeFileOpen"

c:\myfile.txt

"forInputAsnFile259.3順序文件的關(guān)閉Close[[#]文件號(hào)][,[#]文件號(hào)]...例:

關(guān)閉指定的文件信道Close#1,#2,#3關(guān)閉所有已打開的文件信道Close269.3順序文件的寫入Print#或Write#創(chuàng)建新的順序文件Open文件名[ForOutput]As[#]文件號(hào)Print/Write#文件號(hào)[,數(shù)據(jù)列表]Close#文件號(hào)變量名,常數(shù)。數(shù)據(jù)之間用“,”或“;”隔開279.3順序文件的寫(p195)例:創(chuàng)建一個(gè)新的順序文件名為c:\cj.datPrivateSubCommand1_Click()Open"c:\cj.dat"ForOutputAs#1Write#1,"vb","vc","vfp"Write#1,1,80,70,90Close#1EndSub將數(shù)據(jù)追加到c:\cj.dat文件的尾部。289.3順序文件的寫保存文本框內(nèi)容方法1:把文本框的內(nèi)容一次性地寫入文件。

Open"TEST.DAT"ForOutputAs#1 Print#1,Text1 Close#1

方法2:把文本框的內(nèi)容一個(gè)字符一個(gè)字符地寫入文件。

Open"TEST.DAT"ForOutputAs#1 Fori=1Tolen(Text1) Print#1,Mid(Text1,i,1); Nexti Close#1299.3順序文件的讀(p196)INPUT#文件號(hào),變量列表 把讀出的每個(gè)數(shù)據(jù)項(xiàng)分別存放到所對(duì)應(yīng)的變量。LINEINPUT#文件號(hào),字符串變量 讀一行到變量中,主要用來(lái)讀取文本文件。INPUT$(讀取字符數(shù),#文件號(hào)) 隨意讀取字符30與讀文件操作有關(guān)的幾個(gè)函數(shù)LOF(文件號(hào))返回文件的長(zhǎng)度(總字節(jié)數(shù))。EOF(文件號(hào))返回讀寫位置。 指針在文件尾時(shí),EOF函數(shù)為True,否則為False。319.3順序文件的讀(p196)Open文件名[ForInput]As[#]文件號(hào)Input#文件號(hào)[,變量名列表]Close#文件號(hào)說(shuō)明:ForInput以讀取方式打開文件。Input#文件號(hào),該語(yǔ)句將從文件中讀出數(shù)據(jù),并將讀出的數(shù)據(jù)分別賦給指定的變量。329.3順序文件的讀(p196)例:從文件c:\cj.dat中讀出數(shù)據(jù)。Private

Sub

Command1_Click() Open"c:\cj.dat"ForInputAs#1 Fori=1To3 Input#1,a,b,c,d Printa,b,c,d Nexti Close#1EndSub33讀文本文件到文本框方法1:按行為單位讀Text1.Text=""Open"MYFILE.TXT"ForInputAs#1DoWhileNotEOF(1)

LineInput#1,InputData

Text1=Text1+InputData+vbCrLfLoopClose#1 34讀文本文件到文本框方法2:一次性讀Text1.Text=""Open"MYFILE.TXT"ForInputAs#1Text1.Text=Input$(LOF(1),1)

Close#1 35讀文本文件到文本框方法3:按字符為單位讀

DimInputDataasString*1 Text1.Text="" Open"MYFILE.TXT"ForInputAs#1 DoWhileNotEOF(1)

InputData=Input$(1,#1) Text1.Text=Text1.Text+ InputData Loop Close#136例:在窗體上建立一個(gè)文本框,(MultiLine屬性為True,ScrollBars屬性為2)和三個(gè)命令按鈕。單擊“讀入文件”按鈕,則讀入d:\001.txt文件中的10個(gè)整數(shù),放入一個(gè)數(shù)組中(數(shù)組下界為1),并在文本框中顯示出來(lái);如果單擊“排序”按鈕則把10個(gè)數(shù)從大到小排序并在文本框中顯示,如果單擊“保存數(shù)據(jù)”按鈕,則把排序好的數(shù)據(jù)存入保存對(duì)話框中選定的文件。37Dima(1To10)AsIntegerPrivateSubCommand1_Click()nm="d:\001.txt"OpennmForInputAs#1Fori=1To10Input#1,a(i)Text1=Text1+Trim(Str(a(i)))+""NextClose#1EndSub38PrivateSubCommand2_Click()Dimi%,j%Text1.Text=""Fori=1To10Forj=1ToiIfa(i)>a(j)Thent=a(i):a(i)=a(j):a(j)=tNextjNextiFori=1To10Text1=Text1+Trim(Str(a(i)))+""NextEndSub39PrivateSubCommand3_Click()’保存文件CommonDialog1.ShowSavefn=CommonDialog1.FileNameOpenfnForOutputAs#1Print#1,Text1.TextClose#1EndSub40

PrivateSubForm_Click()Dimf1AsInteger,f2AsInteger,f3 AsIntegerOpen"c:\a1.dat"ForOutputAs#1f1=2:f2=3Print#1,"NO.";3,f1Print#1,"NO.";4,f2Fori=5To7f3=f1+f2Print#1,"NO.";i,f3f1=f2f2=f3NextI:Close#1EndSubNO.32NO.43NO.55NO.68NO.713程序1寫出a1.dat文件的最終結(jié)果41P202編程題

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論