學(xué)習(xí)vb課件總19.20講第十章_第1頁
學(xué)習(xí)vb課件總19.20講第十章_第2頁
學(xué)習(xí)vb課件總19.20講第十章_第3頁
學(xué)習(xí)vb課件總19.20講第十章_第4頁
學(xué)習(xí)vb課件總19.20講第十章_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

文件的概念:

存儲在外部介質(zhì)(如磁盤)上數(shù)據(jù)的集合如:程序文件.vbp.frm.bas

文檔文件.doc

作用:計算機(jī)處理的數(shù)據(jù)是以文件的形式存放在外部介質(zhì)(如磁盤)上的。操作系統(tǒng)以文件為單位對數(shù)據(jù)進(jìn)行管理VB中如何實(shí)現(xiàn)對文件進(jìn)行操作?需要使用操作文件的控件10

文件10.1操作文件的控件10.2文件及其結(jié)構(gòu)10.3順序文件10

文件10.1

操作文件控件文件列表框(FileListBox)

目錄列表框(DirListBox)驅(qū)動器列表框(DriveListBox)組合三個控件在一起,能方便地查看系統(tǒng)的磁盤、目錄和文件的信息(類似資源管理器)

驅(qū)動器列表框是一個下拉列表框。通過列表框可以下拉列出系統(tǒng)所有的有效驅(qū)動器名稱(1)常用屬性

①Name屬性缺省時,Name屬性值為“Drive1”。

②Drive屬性

Drive屬性用于返回用戶在驅(qū)動器列表框中選取的驅(qū)動器。只能在程序中設(shè)置或引用10.1.1驅(qū)動器列表框(DriveListBox)給Drive屬性賦值的兩種方法:

方法1:通過賦值語句改變Drive屬性值

對象名.Drive=“驅(qū)動器名稱”例如Drive1.Drive=“C”

方法2:單擊驅(qū)動器列表框中某一驅(qū)動器圖標(biāo)10.1.1驅(qū)動器列表框(DriveListBox)(2)Change事件當(dāng)Drive屬性值發(fā)生改變時,立即觸發(fā)驅(qū)動器列表框的Change事件過程(3)ChDrive語句

用來改變當(dāng)前系統(tǒng)的工作驅(qū)動器

ChDrive“驅(qū)動器名稱”例ChDriveDrive1.DriveChDrive“D”

‘將D盤改為當(dāng)前驅(qū)動器

10.1.1驅(qū)動器列表框(DriveListBox)10.1.2目錄列表框(DirListBox)

用于顯示當(dāng)前驅(qū)動器的目錄結(jié)構(gòu)只能在程序中設(shè)置或引用(1)常用屬性

①Name屬性:缺省時,Name屬性為“Dir1”

②Path屬性用來設(shè)置和返回目錄列表框中的當(dāng)前路徑給Path屬性賦值的兩種方法:方法1:在應(yīng)用程序中改變當(dāng)前目錄。

目錄列表框名.Path=“路徑”例如:

Dir1.Path=“C:\ProgramFiles\HP”

方法2:雙擊目錄列表框中某一項(xiàng)圖標(biāo),系統(tǒng)則將該圖標(biāo)所代表的絕對路徑字符串賦給Path屬性10.1.2目錄列表框(DirListBox)(3)ChDir語句功能:設(shè)置當(dāng)前工作目錄。語句格式如下:

ChDir“路徑名”例如:ChDir“C:\Windows”

將C盤的Windows目錄設(shè)置成當(dāng)前工作目錄再例:ChDirDir1.Path

該語句功能是將當(dāng)前目錄設(shè)置成當(dāng)前工作目錄(2)常用事件:Change事件

當(dāng)用戶雙擊目錄列表框中的目錄項(xiàng),或在程序代碼中通過賦值語句改變Path屬性值,均會觸發(fā)該事件10.1.2目錄列表框(DirListBox)10.1.3文件列表框(FileListBox)

文件列表框在運(yùn)行時列出指定目錄中的文件(1)常用屬性①Name屬性:缺省時,Name屬性為“File1”

②Path屬性:用來設(shè)置和返回文件列表框中所顯示文件的路徑。在程序代碼中可以通過下面的賦值語句重新設(shè)置Path屬性的值。例如:File1.Path=“路徑”只能在程序中設(shè)置或引用③Pattern屬性

Pattern屬性用來設(shè)置在程序運(yùn)行時文件列表框要顯示的某一種類的文件。在程序代碼中設(shè)置Pattern屬性的格式為:

文件列表框.Pattern=“文件類型”例1:File1.Pattern=“*.EXE”

執(zhí)行該語句后,在文件列表框中將顯示擴(kuò)展名為.EXE的文件。例2:File1.Pattern=“*.EXE,???.frm”10.1.3文件列表框(FileListBox)只能在程序中設(shè)置或引用④FileName屬性

FileName屬性用來設(shè)置或返回被選定文件文件名和路徑。設(shè)置FileName屬性的方法有兩種:方法1:賦值語句

文件列表框名.FileName=“路徑名”

例如:File1.FileName=“D:\*.EXE”

執(zhí)行該語句后,在文件列表框中顯示D盤根目錄下的所有擴(kuò)展名為.EXE的文件。同時Path的屬性值也改變?yōu)椤癉:\”。10.1.3文件列表框(FileListBox)方法2:用鼠標(biāo)單擊文件列表框中的某文件名,Click事件

PrivateSubFile1_Click()

MsgBoxFile1.FileNameEndSub10.1.3文件列表框(FileListBox)⑤文件屬性

可以使用文件屬性(Archive、Normal、System、Hidden和ReadOnly)來指定在文件列表框中顯示哪一類種類型的文件

Archive:True,只顯示文檔文件;

Normal:True,只顯示正常標(biāo)準(zhǔn)文件;

Hidden:False,不顯示隱含文件;

System:False,不顯示系統(tǒng)文件。

ReadOnly:True,只顯示只讀文件。10.1.3文件列表框(FileListBox)(2)常用事件①PathChange事件當(dāng)文件列表框的Path屬性改變時,就會觸發(fā)PathChange事件②PatternChange事件

當(dāng)文件列表框的Pattern屬性在程序代碼中被改變時,觸發(fā)PatternChange事件。提出問題:驅(qū)動器、目錄和文件列表框控件通??偸窃谝黄鹗褂?,如果同時使用文件系統(tǒng)的這三個控件時,怎樣保證在三個列表框中同步地顯示信息?10.1.3文件列表框(FileListBox)

假定驅(qū)動器列表框、目錄列表框和文件列表框的缺省名分別為Drive1、Dir1和File1,通過下面兩個事件過程可使得文件系統(tǒng)的三種列表框同步操作。

PrivateSubDrive1_Change()Dir1.Path=Drive1.DriveEndSubPrivateSubDir1_Change()File1.Path=Dir1.PathEndSub文件系統(tǒng)控件應(yīng)用舉例。

1.文件控件(演示)2.例10-1(自學(xué))10.1.3文件列表框(FileListBox)10.2.1記錄記錄是計算機(jī)處理數(shù)據(jù)的基本單位,由若干個相互關(guān)聯(lián)的數(shù)據(jù)項(xiàng)組成。

表示一個人或一件事的某些信息就構(gòu)成一個記錄例如:10.2文件及其結(jié)構(gòu)(簡講)

學(xué)號姓名數(shù)學(xué)成績語文成績英語成績總分10.2.2文件分類

文件是記錄的集合。

舉例30個學(xué)生記錄

(1)按文件的存取方式及組成結(jié)構(gòu)分:順序文件隨機(jī)文件

①順序文件:記錄的存取次序與在文件中的實(shí)際次序相一致。系統(tǒng)只知道第一個記錄的位置記錄的排列形式:

記錄1記錄2記錄3……記錄N結(jié)束標(biāo)志10.2文件及其結(jié)構(gòu)舉例:現(xiàn)有一個存入100個記錄的順序文件,若要讀第50個記錄,必須先讀前49個記錄,然后才能讀第50個記錄。寫入同樣。

記錄1記錄2記錄3……記錄N結(jié)束標(biāo)志

10.2文件及其結(jié)構(gòu)②隨機(jī)文件

是由一組長度相等的記錄組成。每條記錄都有一個記錄號,讀寫數(shù)據(jù)都是根據(jù)記錄號來定。可以直接訪問文件中的任意一個記錄記錄的排列形式:#1記錄1#2記錄2#3記錄3……#N記錄N結(jié)束標(biāo)志舉例:現(xiàn)有一個存入100個記錄的隨機(jī)文件,若要讀第50個記錄,不必先讀前49個記錄,而直接按記錄號50讀取即可

10.2文件及其結(jié)構(gòu)(2)按文件的數(shù)據(jù)編碼方式分①ASCII碼文件

文件中數(shù)據(jù)是以ASCII碼進(jìn)行編碼存儲

②二進(jìn)制文件

文件中數(shù)據(jù)是以二進(jìn)制格式進(jìn)行編碼存儲10.2文件及其結(jié)構(gòu)10.2.3文件的存取方式(1)順序存取:適用于以連續(xù)方式存儲數(shù)據(jù)的文本文件(2)隨機(jī)存?。哼m用于具有固定結(jié)構(gòu)的以二進(jìn)制方式存取的文件(3)二進(jìn)制存取:適用于讀寫任意結(jié)構(gòu)的文件10.2文件及其結(jié)構(gòu)10.3順序文件的存取一、順序文件的打開和關(guān)閉(Open和Close)(1)打開文件(Open)形式:

Open“文件名”[For模式]As[#]文件號[Len=記錄長度]說明:

①對文件進(jìn)行任何讀寫操作前都必須用Open語句打開該文件。

文件名:必選參數(shù)。指定要打開(或創(chuàng)建)的文件,可包含盤符和路徑。②模式:對于順序文件,是必選參數(shù)。作用:通知系統(tǒng)對文件是進(jìn)行讀操作還是寫操作

Output—寫操作(從文件的起始處寫入數(shù)據(jù))Append—追加操作(從文件當(dāng)前結(jié)束處開始寫入數(shù)據(jù),且保留原有數(shù)據(jù))Input—讀操作(將文件數(shù)據(jù)從磁盤讀入內(nèi)存)

10.3順序文件的存取注意:

A.文件打開以后,系統(tǒng)自動形成一個隱形的文件指針,文件的讀或?qū)懖僮鲝奈募羔標(biāo)傅奈恢瞄_始。

B.用

Append模式打開的文件,文件指針指向文件末尾。用其他方式打開的文件,文件指針都指向文件開頭。每完成一次讀或?qū)?,指針自動移動到下一個讀寫操作的起始位置。

記錄1記錄2記錄3……記錄N結(jié)束標(biāo)志

10.3順序文件的存取

③文件號:必選參數(shù)。稱為文件標(biāo)識符在文件操作中代表該文件。值介于1~511間的整數(shù)。例:Open“C:\TEMP.DAT”ForOutputAs#1

C.如果文件名指定的文件不存在,則用Output或Append模式打開文件時,會自動建立這一文件。而用Input模式打開文件時,該文件必須存在,否則產(chǎn)生錯誤例:Open“C:\TEMP.DAT”ForOutputAs#1

Open“C:\VBTMP\TST.TXT”ForInputAs#210.3順序文件的存取(2)關(guān)閉文件關(guān)閉與文件號相關(guān)聯(lián)的文件.

形式:

Close[[#]文件號[,[#]文件號]……]

注意:省略文件號,則關(guān)閉所有打開的文件

例如:

Close#1,#2‘關(guān)閉1號,2號文件

Close‘關(guān)閉所有已打開的文件10.3順序文件的存取

二、順序文件的讀寫操作

(1)寫操作(Print#語句或Write#語句)

作用:將數(shù)據(jù)從內(nèi)存寫入磁盤文件①Print#語句格式:Print#文件號,[輸出列表]

輸出列表:[{spc(n)|tab(n)}][表達(dá)式列表][;|,]

作用:將數(shù)據(jù)從輸出列表寫入由文件號所代表的文件中

注意:如果打開的文件是新文件,則利用Print#語句可建立順序文件例10-2用Print#語句建立順序文件,

并觀察輸出列表中分號和逗號的作用如下

PrivateSubForm_Click()Dimx%,y%,str1$,str2$x=100:y=200str1=“Howareyou”:str2=“Hello”

Open“File1.txt”ForOutputAs#1

‘建立File1.txt新文件

Print#1,x;y;str1;str2(當(dāng)前路徑下)Print#1,x,str1Print#1,str1,xPrint#1,x;y;Print#1,str1;str2Print#1,Spc(5);str1Print#1,Tab(10);str2

Close#1Print“文件File1.txt已建立”EndSub

示例10-2例10-410-5:把一個文本框的內(nèi)容以文件的形式保存到磁盤上。文本框的名稱:txtTest文件名:test.dat方法一:一次寫入Open“test.dat”ForOutputAs#1Print#1,txtTest.TextClose#1方法二:一個一個字符寫入Open“test.dat”ForOutputAs#1Fori=1ToLen(txtTest)

Print#1,Mid(txtTest.text,i,1);NextiClose#1②Write#文件號,[輸出列表][,]輸出列表:用“,”分隔的數(shù)值或字符串表達(dá)式。輸出表若以逗號結(jié)束,則下一個輸出項(xiàng)在同一行緊湊輸出到文件;若無逗號,則換行輸出。例:Write#1,“one”,“two”,123Write#1,“one”,“123”

結(jié)果:“one”,“two”,123“one”,“123”Write#語句與Print#語句的區(qū)別:

Write#語句寫入文件時,是以緊湊格式存放的,即在數(shù)據(jù)項(xiàng)之間插入“,”,并給字符串加雙引號例10-3用Write#語句建立順序文件.(2)讀操作

將數(shù)據(jù)從順序文件讀到內(nèi)存。先用Open打開文件,其模式為——Input。

讀操作有三種格式:

①Input#文件號,變量列表從文件號對應(yīng)的順序文件中讀出若干數(shù)據(jù),依次賦給相應(yīng)的變量.例如:Input#1,i

注意:文件中數(shù)據(jù)項(xiàng)以逗號,空格或回車換行符分隔此語句不能讀取逗號,空格或回車換行符Write#語句常與Input#語句結(jié)合使用,用于先建立文件,再從中讀數(shù)據(jù)示例10-6②LineInput#文件號,字符串變量

將對應(yīng)的順序文件中的整個一行字符讀到字符串變量中。注意:不是以逗號為分隔符,以Enter或Return作為分隔符適合于一行一行讀文本文件例1:LineInput#1,i

‘從文件當(dāng)前位置起讀一行,放在字符變量i中

例2如下:‘把文本文件的內(nèi)容一行一行地讀入文本框

txtTest=“”O(jiān)pen“myfile.txt”ForInputAs#1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論