visual basic程序設(shè)計(jì)課件第13章數(shù)據(jù)文件_第1頁(yè)
visual basic程序設(shè)計(jì)課件第13章數(shù)據(jù)文件_第2頁(yè)
visual basic程序設(shè)計(jì)課件第13章數(shù)據(jù)文件_第3頁(yè)
visual basic程序設(shè)計(jì)課件第13章數(shù)據(jù)文件_第4頁(yè)
visual basic程序設(shè)計(jì)課件第13章數(shù)據(jù)文件_第5頁(yè)
已閱讀5頁(yè),還剩95頁(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)介

第13章數(shù)據(jù)文件

文件概述13.1文件的打開與關(guān)閉

13.2順序文件

13.3

隨機(jī)文件13.4

二進(jìn)制文件13.5文件幾本操作

13.6文件系統(tǒng)控件

13.713.1文件概述13.1.1文件設(shè)備13.1.2文件的結(jié)構(gòu)13.1.3文件的分類所謂“文件”是指一組相關(guān)數(shù)據(jù)的有序集合。例如用Word或Excel編輯的文檔或表格都是一個(gè)文件。在我們使用這個(gè)數(shù)據(jù)集時(shí)我們需要一個(gè)標(biāo)識(shí)符號(hào),更通俗些說(shuō)就是這個(gè)數(shù)據(jù)集合的名稱,叫做該文件的文件名。文件通常存儲(chǔ)在光碟、磁盤等外部介質(zhì)上,在使用時(shí)我們才會(huì)將其調(diào)入到內(nèi)存中。數(shù)據(jù)文件是指駐留在磁盤或其它外部介質(zhì)上的一個(gè)有序數(shù)據(jù)集,可以是文本文件、可執(zhí)行程序文件、數(shù)據(jù)庫(kù)文件等(既我們使用計(jì)算機(jī)時(shí)能夠在外介質(zhì)上找到的文件,也是我們接下來(lái)要學(xué)習(xí)的重點(diǎn))。13.1.1文件設(shè)備在介紹文件之前,讓我們一起來(lái)了解一下計(jì)算機(jī)中用來(lái)存儲(chǔ)文件的設(shè)備“硬盤”,首先我們都已經(jīng)知道了計(jì)算機(jī)一些外部設(shè)備的作用,比如說(shuō),鍵盤是用來(lái)向計(jì)算機(jī)內(nèi)輸入數(shù)據(jù)的設(shè)備,所以我們稱鍵盤為輸入設(shè)備。而顯示器是用來(lái)顯示計(jì)算機(jī)內(nèi)的數(shù)據(jù)信息的設(shè)備,所以我們稱顯示器為輸出設(shè)備。但是那個(gè)被封鎖在計(jì)算機(jī)里的黑匣子(也就是硬盤)應(yīng)該歸屬于什么設(shè)備呢?其實(shí)這個(gè)問(wèn)題并不難于回答,只要我們把自己的位置放在計(jì)算機(jī)的核心部分CPU,我們就能夠非常清晰的區(qū)分開一個(gè)設(shè)備是輸入設(shè)備還是輸出設(shè)備。我們之所以稱鍵盤是輸入設(shè)備,是因?yàn)槲覀兛梢酝ㄟ^(guò)鍵盤向計(jì)算機(jī)的CPU(中央處理器)進(jìn)行數(shù)據(jù)輸入,因此我們稱鍵盤為輸入設(shè)備,而顯示器是用來(lái)將中央處理器中的數(shù)據(jù)顯示給用戶的設(shè)備,因此我們稱其為輸出設(shè)備??蓪?duì)于硬盤等外部存儲(chǔ)器來(lái)說(shuō),我們有時(shí)需要把數(shù)據(jù)從硬盤讀取到中央處理器。這時(shí)的硬盤就像計(jì)算機(jī)鍵盤一樣為中央處理器提供了數(shù)據(jù),因此我們把它看作是一個(gè)輸入設(shè)備。而當(dāng)我們?yōu)榱税袰PU中的數(shù)據(jù)長(zhǎng)期保存,將其寫入到硬盤中去的時(shí)候,硬盤的作用就類似于顯示器,都是用來(lái)接收CPU發(fā)送的數(shù)據(jù)的。因此這時(shí)我們稱硬盤為輸出設(shè)備。而文件是存儲(chǔ)在硬盤上,一組相關(guān)數(shù)據(jù)的有序集合。因此它擁有和磁盤相似的屬性。當(dāng)我們從文件中讀取數(shù)據(jù)時(shí),我們就可以把該文件當(dāng)作一個(gè)輸入設(shè)備來(lái)使用;如果我們把內(nèi)存中的數(shù)據(jù)數(shù)據(jù)寫入到一個(gè)文件中,這時(shí)我們可以把該文件當(dāng)作一個(gè)輸出設(shè)備來(lái)使用。13.1.2文件的結(jié)構(gòu)為了有效地存取數(shù)據(jù),數(shù)據(jù)必須以某種特定的方式存放,這種特定的方式稱為文件結(jié)構(gòu)。VisualBasic中文件由記錄組成,記錄由字段組成,字段由字符組成。(1)字符(Character):是構(gòu)成文件最基本的單位??梢允菙?shù)字、字母、特殊符號(hào)或單一字節(jié)。這里所說(shuō)的“字符”特指西文字符,一個(gè)西文字符在磁盤文件中用一個(gè)字節(jié)存放。如果是漢字字符,包括“全角”符號(hào),通常用兩個(gè)字符存放。(2)字段(Field):也稱域。由若干個(gè)字符組成,用來(lái)表示一項(xiàng)數(shù)據(jù)。例如:姓名“張語(yǔ)真”,郵政編碼“123456”這些都是字段。(3)記錄(Record):由一組相關(guān)的字段組成。例如在學(xué)籍檔案中,每個(gè)學(xué)生的姓名、性別、家庭地址、電話號(hào)碼、郵政編碼等構(gòu)成一個(gè)記錄,見表13-1。在VisualBasic中,以記錄為單位來(lái)處理數(shù)據(jù)。表13-1記錄姓名性別家庭地址電話號(hào)碼郵政編碼張語(yǔ)真女自由大道12345678123456(4)文件(File):文件由紀(jì)錄構(gòu)成,一個(gè)文件中含有一個(gè)以上的記錄。例如,在學(xué)籍檔案中存有1000個(gè)學(xué)生的信息,每個(gè)人的信息是一個(gè)記錄,這1000個(gè)記錄構(gòu)成了一個(gè)文件。13.1.3文件的分類在VB中根據(jù)文件的結(jié)構(gòu)和訪問(wèn)方式,可將文件分為三類:順序存取文件、隨機(jī)存取文件和二進(jìn)制存取文件。下面分別予以介紹。1、順序文件順序存取是將要保存的數(shù)據(jù),依序逐個(gè)字符轉(zhuǎn)成ASCII字符,然后存入磁盤。以順序存取的方式保存數(shù)據(jù)的文件叫做順序存取文件,簡(jiǎn)稱順序文件。順序文件存儲(chǔ)格式如圖13-1所示。圖13-1順序文件存儲(chǔ)格式通常記錄與記錄之間的分界字符為回車符,記錄中字段與字段之間的分界字符為逗號(hào)。在順序文件中查找某個(gè)記錄必須從文件頭開始找起,逐個(gè)比較,直到找到目標(biāo)為止。若要修改某個(gè)記錄,則需將整個(gè)文件讀出來(lái),修改后再將整個(gè)文件寫回磁盤,因此很不靈活。但由于順序文件是按行存儲(chǔ),所以它們對(duì)需要處理文本文件的應(yīng)用程序來(lái)說(shuō)就是非常理想的了。例如,一般的文本文件(*.txt文件)都是順序文件。順序文件的優(yōu)點(diǎn)是操作簡(jiǎn)單,缺點(diǎn)是無(wú)法任意取出某一個(gè)記錄來(lái)修改,一定得將全部數(shù)據(jù)讀入,在數(shù)據(jù)量很大時(shí)或只想修改某一條記錄時(shí),則顯得非常不方便。順序文件的特點(diǎn)是:結(jié)構(gòu)簡(jiǎn)單,但不能靈活的存取和增減數(shù)據(jù),因而適合存放有一定的規(guī)律且不經(jīng)常修改的數(shù)據(jù)。主要優(yōu)點(diǎn)是占用空間少,容易使用。2、隨機(jī)存取文件又稱直接存取文件,簡(jiǎn)稱隨機(jī)文件或直接文件。與順序文件不同,在訪問(wèn)隨機(jī)文件中的數(shù)據(jù)時(shí),不必考慮各個(gè)記錄的排列順序和位置,可以根據(jù)需要,訪問(wèn)文件中的任何一個(gè)記錄。隨機(jī)文件很像一個(gè)數(shù)據(jù)庫(kù),它由大小相同的記錄組成,每個(gè)記錄又由字段組成,字段中存放著數(shù)據(jù)。其存儲(chǔ)結(jié)構(gòu)如圖13-2所示。圖13-2隨機(jī)文件存儲(chǔ)格式每個(gè)記錄前都有記錄號(hào)表示此記錄開始。在讀取文件時(shí),只要給出記錄號(hào),就可迅速找到該記錄,并將該記錄讀出;若對(duì)該記錄做了修改,需要寫到文件中時(shí),也只要指出記錄號(hào),新記錄將自動(dòng)覆蓋原有記錄。所以,隨機(jī)文件的訪問(wèn)速度快,讀、寫、修改靈活方便,但由于在每個(gè)記錄前增加了記錄號(hào),從而使其占用的存儲(chǔ)空間增大。3、二進(jìn)制文件在二進(jìn)制文件中的數(shù)據(jù)均以二進(jìn)制方式存儲(chǔ),存儲(chǔ)單位是字節(jié)(隨機(jī)文件按記錄存取,順序文件按行存取)。在二進(jìn)制文件中,能夠存取任意所需要的字節(jié),可以把文件指針移到文件的任何地方,因此,使用二進(jìn)制文件和使用計(jì)算機(jī)內(nèi)存中的數(shù)據(jù)是一樣的。所以,這種存取方式最為靈活,但二進(jìn)制文件不能用普通的字處理軟件編輯。13.2文件的打開與關(guān)閉13.2.1文件的打開(建立)13.2.2文件的關(guān)閉在VB中進(jìn)行文件操作的基本步驟如下:(1)打開(或建立)文件在我們使用一個(gè)文件之前,必須先打開或建立這個(gè)文件。如果我們要處理的文件已經(jīng)存在,則打開該文件;如果不存在,則建立該文件。(2)對(duì)文件進(jìn)行數(shù)據(jù)處理(讀、寫操作)在已經(jīng)打開的文件上進(jìn)行輸入輸出操作。就如上一節(jié)中我們提到的,把內(nèi)存中的數(shù)據(jù)傳送到相關(guān)的外部設(shè)備(例如磁盤)并作為文件存放的操作叫做寫數(shù)據(jù),而把文件中的數(shù)據(jù)傳送到內(nèi)存中的操作叫做讀數(shù)據(jù)。(3)關(guān)閉文件關(guān)閉文件,即釋放文件的控制權(quán)。并釋放文件處理時(shí)所占用的內(nèi)存。13.2.1文件的打開(建立)如前所述,在對(duì)文件中的數(shù)據(jù)進(jìn)行操作之前,我們必須先打開或建立文件。同時(shí)要通知操作系統(tǒng)對(duì)文件進(jìn)行讀操作還是寫操作,將數(shù)據(jù)存到什么地方。打開文件用Open語(yǔ)句。其使用語(yǔ)法如下:Open文件名[For模式][Access訪問(wèn)方式][Lock]As[#]文件號(hào)[Len=記錄長(zhǎng)度]Open語(yǔ)句的作用是為文件的輸入輸出分配內(nèi)存緩沖區(qū),并指定該緩沖區(qū)使用的存取方式。說(shuō)明:1)Open語(yǔ)句中的Open、For、Access、As以及Len為關(guān)鍵字,參數(shù)“文件名”是指要打開的文件,可包含驅(qū)動(dòng)器名及路徑名。其它幾個(gè)參數(shù)含義如下:(1)“模式”是說(shuō)明文件打開的方式,用來(lái)指定文件的輸入輸出方式,可以為以下幾種操作之一:a.Output(輸出):指定Open語(yǔ)句以順序方式打開文件,并且將該文件當(dāng)作一個(gè)輸出設(shè)備來(lái)使用,相當(dāng)于由內(nèi)存向硬盤寫數(shù)據(jù)。b.Input(輸入):指定Open語(yǔ)句以順序方式打開文件,并且將該文件當(dāng)作一個(gè)輸入設(shè)備來(lái)使用,相當(dāng)于由硬盤向內(nèi)存讀數(shù)據(jù)。c.Append(追加):指定Open語(yǔ)句以順序方式打開文件,并且將該文件當(dāng)作一個(gè)輸出設(shè)備來(lái)使用。與Output模式的不同在于,當(dāng)用Append模式打開文件時(shí),文件指針被定位在文件的末尾。如果對(duì)文件進(jìn)行寫操作,相當(dāng)于將數(shù)據(jù)添加在文件尾部。d.Random(隨機(jī)):指定Open語(yǔ)句以隨機(jī)存取方式打開文件,此項(xiàng)為“模式”參數(shù)的默認(rèn)值。在隨機(jī)模式中,如果沒有Access子句,則執(zhí)行Open語(yǔ)句時(shí),VB試圖按下列順序打開文件:讀/寫;(b)只讀;(c)只寫。e.Binary:指定以二進(jìn)制方式打開文件。在這種模式下可以用Get和Put語(yǔ)句對(duì)該文件中任何一個(gè)字節(jié)位置上的信息進(jìn)行讀寫操作。

(2)“訪問(wèn)方式”說(shuō)明打開文件所允許的操作,有三種方式:(1)Read:只讀方式。(2)Write:只寫方式。(3)ReadWrite:讀寫皆可,只適用于隨機(jī)文件、二進(jìn)制文件和順序文件的Append模式?!霸L問(wèn)方式”制定了能夠在打開的文件中進(jìn)行的操作。如果要打開的文件已經(jīng)被其他進(jìn)程打開,則VB不允許再次為該文件制定“訪問(wèn)方式”,否則在執(zhí)行Open語(yǔ)句時(shí)會(huì)產(chǎn)生錯(cuò)誤信息。(3)Lock參數(shù)是指明其他進(jìn)程對(duì)打開文件所允許的操作,可以為以下幾種操作之一:LockShared:其他進(jìn)程可對(duì)此文件進(jìn)行任何讀寫操作。LockRead:不允許其他進(jìn)程讀此文件。LockWrite:不允許其他進(jìn)程寫此文件。LockReadWrite:不允許其他進(jìn)程對(duì)此文件進(jìn)行任何操作。(4)“文件號(hào)”是一個(gè)1~511的整數(shù),用于表示這個(gè)文件。執(zhí)行Open語(yǔ)句時(shí),打開文件的文件號(hào)與一個(gè)具體的文件相關(guān)聯(lián),其它輸入輸出語(yǔ)句或函數(shù)就是通過(guò)文件號(hào)與文件發(fā)生關(guān)聯(lián)。(5)記錄長(zhǎng)度是一個(gè)整型數(shù),故其長(zhǎng)度不能超過(guò)32767。對(duì)順序文件來(lái)說(shuō),它是指內(nèi)存緩沖區(qū)分配的字符個(gè)數(shù);對(duì)隨機(jī)文件來(lái)說(shuō),它是文件中單個(gè)記錄的長(zhǎng)度。對(duì)于二進(jìn)制文件將忽略Len子句。2)Open語(yǔ)句兼有打開和創(chuàng)建文件兩種功能。如果我們?yōu)檩斎耄↖nput,特指把磁盤文件的數(shù)據(jù)向內(nèi)存輸入)打開的文件未找到,VB將會(huì)產(chǎn)生“文件未找到”錯(cuò)誤;如果為輸出(Output)、追加(Append)或隨機(jī)(Random)模式打開的文件不存在,則建立相應(yīng)的磁盤文件。下面是一些用Open語(yǔ)句打開或建立文件的例子:Open"c:\abc.txt"ForOutputAs#1該語(yǔ)句以輸出方式打開C盤根目錄上的文件abc.txt(如果不存在就建立該文件),即把文件c:\abc.txt當(dāng)作一個(gè)輸出設(shè)備來(lái)使用,準(zhǔn)備對(duì)其進(jìn)行寫操作,并為該設(shè)備指定文件號(hào)為1號(hào)。Open"c:\xyz\abc.txt"ForAppendAs#5以追加輸出方式打開C盤yxz目錄下的文件abc.txt,并指定文件號(hào)為5。Open"c:\abc.txt"ForInputAs#7該語(yǔ)句以輸入方式打開C盤根目錄上的文件abc.txt(如果不存在就產(chǎn)生“未找到文件”錯(cuò)誤),即把文件c:\abc.txt當(dāng)作一個(gè)輸入設(shè)備來(lái)使用,準(zhǔn)備對(duì)其進(jìn)行讀操作,并為該設(shè)備指定文件號(hào)為7號(hào)。以上幾個(gè)例子打開的文件都是按照順序方式輸入輸出的。DimFileName$FileName$="c:\MyFile.dat"OpenFileNameForRandomAs#1Len=256上例先把文件名賦給一個(gè)變量FileName$,然后以隨機(jī)模式打開該文件,并且制定該文件中單個(gè)記錄的長(zhǎng)度為256個(gè)字節(jié)。13.2.2文件的關(guān)閉對(duì)文件操作完之后,要關(guān)閉文件,其語(yǔ)法:Close[#文件號(hào)1][,#文件號(hào)2]……若Close語(yǔ)句后無(wú)文件號(hào),則關(guān)閉所有打開的文件。如果我們使用以下語(yǔ)句打開了一個(gè)文件:Open"c:\abc.dat"ForRandomAs#1Len=256則可用以下語(yǔ)句來(lái)關(guān)閉該文件設(shè)備。Close#113.3順序文件13.3.1順序文件的打開13.3.2順序文件的寫操作13.3.3順序文件的讀操作13.3.1順序文件的打開順序文件按行為單元進(jìn)行存儲(chǔ),通常它是一個(gè)文本文件,數(shù)字和字符均以ASCII碼形式保存。下面討論順序文件的操作語(yǔ)句。在對(duì)任何文件進(jìn)行操作之前,必須打開文件,同時(shí)要通知操作系統(tǒng)對(duì)文件進(jìn)行讀操作還是寫操作,將數(shù)據(jù)存到什么地方。順序文件也不例外,打開文件的方法已經(jīng)在上一節(jié)中做了詳細(xì)的介紹這里就不再贅述。只是有一些細(xì)節(jié)問(wèn)題需要注意。?一般不為順序文件制定Len子句參數(shù)。因?yàn)閷?duì)于順序文件來(lái)說(shuō),記錄長(zhǎng)度這一概念沒有實(shí)際意義。?一般也不為順序文件制定Access子句參數(shù)。因?yàn)閷?duì)于順序文件的讀寫操作模式已經(jīng)在For后的“模式”參數(shù)中作出了明確的規(guī)定。13.3.2順序文件的寫操作要建立一個(gè)順序文件或打開一個(gè)順序文件,向文件中寫數(shù)據(jù),應(yīng)該用Output模式打開文件,然后用輸出命令寫入數(shù)據(jù)。以O(shè)utput模式打開文件,就是建立文件;若文件已存在,則刪除舊文件,建立新文件。以Append模式打開文件與此很相似,二者的差別在于:以Append模式打開文件時(shí),如果該文件已經(jīng)存在,VB并不刪除它,隨后的輸出命令把新行追加到該文件尾部。寫文件的輸出命令有Print和Write兩種:1、Print#語(yǔ)句·Print#文件號(hào),[Spc(n)|Tab(n)]字段1[;|,][Spc(n)|Tab(n)][字段2[;|,]……Print#語(yǔ)句的功能是,把數(shù)據(jù)寫入到指定的文件設(shè)備中去。前面的章節(jié)中我們?cè)?jīng)多次用到Print方法,Print#語(yǔ)句與Print方法的功能基本上是類似的。不同的是Print方法的輸出對(duì)象是窗體、圖片框等屏幕設(shè)備或Printer(打印機(jī)設(shè)備),而Print#語(yǔ)句所“寫”的對(duì)象是文件設(shè)備。在上面的格式中,“文件號(hào)”的含義同前,數(shù)據(jù)被寫入該文件號(hào)代表的文件中。其他參量,包括Spc函數(shù)、Tab函數(shù)和分號(hào)、逗號(hào)的含義都與Print方法中相同這里就不再贅述。例如:Open"c:\FirstFile.txt"For0utputAs#1A$="Iamsohappy."Print#1,"HelloWorld!!!",AClose#1在c盤根目錄上建立文本文件FirstFile.txt并為其關(guān)聯(lián)到文件號(hào)1,然后把字符串常量"HelloWorld!!!"和變量A的內(nèi)容寫到文件號(hào)為1的文件中。然后使用Close語(yǔ)句關(guān)閉該文件設(shè)備。而

Print"HelloWorld!!!",A則是把常量與變量的內(nèi)容“寫”到窗體對(duì)象這個(gè)屏幕輸出設(shè)備上去。例13-1(參看教材P255-256)2、Write語(yǔ)句前面我們?cè)岬?,向順序文件進(jìn)行數(shù)據(jù)輸入的方法除去Print#語(yǔ)句以外,還有另外的方法,這個(gè)方法就是Write語(yǔ)句。其格式為:·Write#文件號(hào),字段1,……Write語(yǔ)句的使用和Print#語(yǔ)句基本一樣,例如:Write#1,A,B,C把變量A、B、C的值寫入文件號(hào)為1的文件中。在Write語(yǔ)句“文件號(hào)”和“字段”的概念都和Print#語(yǔ)句一致,在此不再贅述。在使用Write語(yǔ)句時(shí),文件也必須是以O(shè)utput或Append模式打開的順序文件。各字段之間必須用逗號(hào)分開。Write語(yǔ)句的功能和Print#語(yǔ)句基本相同,但有以下兩點(diǎn)主要區(qū)別,望讀者注意:(1)當(dāng)用Write語(yǔ)句向文件寫數(shù)據(jù)時(shí),數(shù)據(jù)在磁盤上以緊湊格式存放,且能自動(dòng)地在數(shù)據(jù)項(xiàng)之間插入逗號(hào),并給字符串加上雙引號(hào)。一旦該語(yǔ)句最后一個(gè)參變量被寫入到文件中后,就在這一行的末尾插上一個(gè)換行符號(hào)。標(biāo)識(shí)著該記錄的結(jié)束。(2)使用Write語(yǔ)句寫入到順序文件中的整數(shù)前沒有空格。例13-2(參看教材P257-258)13.3.3順序文件的讀操作要讀順序文件的內(nèi)容,應(yīng)該以Input模式打開該文件,然后從中讀取數(shù)據(jù)。讀數(shù)據(jù)的操作由Input#語(yǔ)句、LineInput#語(yǔ)句和Input$函數(shù)三種方法來(lái)實(shí)現(xiàn)。1、Input#語(yǔ)句·Input#文件號(hào),字段1[,字段2]{,……}Input#的作用是從文件中讀取數(shù)據(jù),并且把讀出的數(shù)據(jù)賦值給指定的字段變量。例:Input#1,A,B,C從1號(hào)文件中讀取3個(gè)數(shù)據(jù),并將其分別賦值給變量A、B和C。例13-3(參看教材P258)2、LineInput#語(yǔ)句·LineInput#文件號(hào),字符串變量LineInput#語(yǔ)句的作用是,從順序文件一次讀出一行字符串?dāng)?shù)據(jù)到指定變量。語(yǔ)法格式中“文件號(hào)”含義同前。字符串變量的所用是用來(lái)接收LineInput#語(yǔ)句讀出的字符串?dāng)?shù)據(jù)的。LineInput#語(yǔ)句與Input#語(yǔ)句的作用基本相似,主要區(qū)別是:Input#語(yǔ)句每次從順序文件中讀取一個(gè)數(shù)據(jù)項(xiàng),而LineInput#語(yǔ)句每次從文件中讀取一行數(shù)據(jù)。并自動(dòng)省略每行數(shù)據(jù)后的回車換行符號(hào)。正因?yàn)長(zhǎng)ineInput#語(yǔ)句的這些特點(diǎn),所以其經(jīng)常被用來(lái)處理文本文件。了解幾個(gè)與文件操作有關(guān)的函數(shù)。它們分別是:

LOF()函數(shù)以字節(jié)方式返回被打開文件大小。其調(diào)用語(yǔ)法如下:LOF(文件號(hào))如LOF(1)返回#1文件的長(zhǎng)度。

LOC()函數(shù)返回被打開文件的當(dāng)前位置。其調(diào)用語(yǔ)法如下:LOC(文件號(hào))對(duì)于順序位置的計(jì)算以128字節(jié)為單位,返回當(dāng)前位置是第幾個(gè)128字節(jié);對(duì)于隨機(jī)文件,它返回當(dāng)前讀寫的記錄號(hào);對(duì)于二進(jìn)制文件,返回當(dāng)前的字節(jié)位置。EOF()函數(shù)返回值指出讀文件過(guò)程中是否到了文件末端。其調(diào)用語(yǔ)法如下:EOF(文件號(hào))返回True,則到達(dá)文件末端;否則返回False。

FreeFile()函數(shù)返回程序中尚未被使用的文件號(hào)。在我們編制的程序中打開的文件有多個(gè)時(shí),這個(gè)函數(shù)將變得尤為重要。還有一點(diǎn)要特別的注意,對(duì)于順序文件,讀寫操作不能同時(shí)進(jìn)行。每進(jìn)行一次讀或?qū)懖僮?,都必須重新打開文件,讀或?qū)懲曛笤訇P(guān)閉文件。例13-4(參看教材P259-261)3、Input$函數(shù)·x$=Input$(n,#文件號(hào))Input$函數(shù)返回從指定文件中讀出的n個(gè)字符組成的字符串。例如:

x$=Input$(20,#1)從1號(hào)文件中讀取前20個(gè)字符,并將其賦給字符串變量x$。Input$函數(shù)有些類似于C語(yǔ)言中的fread函數(shù),都是把文件當(dāng)作一個(gè)“二進(jìn)制數(shù)據(jù)流”,因此在使用Input$函數(shù)對(duì)文件進(jìn)行數(shù)據(jù)讀操作之前應(yīng)該以二進(jìn)制模式打開文件。Input$函數(shù)的作用就是從這個(gè)數(shù)據(jù)流中讀取指定的數(shù)據(jù)量,如上例中的20個(gè)字符。因此如果我們要完全讀取一個(gè)文件的內(nèi)容的話,使用Input$函數(shù)對(duì)文件進(jìn)行讀操作,會(huì)擁有更高的效率。例如,我們可以把例題13.4中讀取文件的程序代碼改編如下:PrivateSubCommand1_Click()location=InputBox("Open","打開文件")Iflocation<>""ThenOpenlocationForBinaryAs#1'以二進(jìn)制方式打開文件,以便可以使用Input$'函數(shù)正確的進(jìn)行文件讀取。

Text1.Text=input$(LOF(1),#1)'使用Input$函數(shù)讀取1號(hào)文件中的所有數(shù)據(jù)。

Close#1EndIfEndSub通過(guò)以上改編,我們會(huì)發(fā)現(xiàn),在對(duì)數(shù)據(jù)量比較大的文件進(jìn)行讀操作時(shí)(比如說(shuō),文件中有600000行數(shù)據(jù)),使用Input$函數(shù)進(jìn)行數(shù)據(jù)讀取的速度要明顯高于LineInput語(yǔ)句。13.4隨機(jī)文件13.4.1定義記錄類型13.4.2隨機(jī)文件的打開(建立)13.4.3隨機(jī)文件的讀寫操作在本章第一節(jié)中我們?cè)?jīng)描述了隨機(jī)文件的結(jié)構(gòu)。我們知道隨機(jī)文件的結(jié)構(gòu)很象一個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu),對(duì)隨機(jī)文件的操作實(shí)際上是對(duì)文件中的記錄進(jìn)行操作,每個(gè)記錄都有記錄號(hào)并且記錄長(zhǎng)度全部相同。那么無(wú)論是從內(nèi)存向磁盤寫數(shù)據(jù),還是從磁盤讀數(shù)據(jù),都需要事先定義內(nèi)存空間。而VB中內(nèi)存空間的分配是靠變量說(shuō)明來(lái)進(jìn)行的,所以不管是讀操作還是寫操作都必須事先在程序中定義變量,且該變量要定義成與隨機(jī)文件中的一條記錄相同的類型,一條記錄又是由多個(gè)字段組成的,每字段有不同的類型和長(zhǎng)度。因此在程序中用來(lái)保存記錄的變量,在其說(shuō)明部分應(yīng)采用用戶自定義類型說(shuō)明語(yǔ)句,首先定義記錄的類型結(jié)構(gòu),然后再將變量說(shuō)明成該類型,這樣就為這個(gè)變量申請(qǐng)了內(nèi)存空間,用于存放隨機(jī)文件中的一條記錄。13.4.1定義記錄類型我們提到過(guò),隨機(jī)文件是由固定長(zhǎng)度的記錄組成,每個(gè)記錄含有若干個(gè)字段。記錄中各字段存放在一個(gè)記錄類型中,記錄類型用Type…EndType語(yǔ)句定義。且定義記錄類型時(shí),Type…EndType語(yǔ)句通常在標(biāo)準(zhǔn)模塊中使用,如果在窗體模塊中進(jìn)行數(shù)據(jù)類型的定義,則應(yīng)該在其前面加上Private關(guān)鍵字。關(guān)于記錄類型的定義與使用方法,已經(jīng)在前面章節(jié)中進(jìn)行了詳細(xì)的介紹,這里就不再贅述。例如:PrivateTypeStudTypeNumAsString*8NameAsString*12AgeAsIntegerClassAsString*5EndTypeDimaStudentAsStudType13.4.2隨機(jī)文件的打開(建立)我們前面提到過(guò),在使用一個(gè)文件進(jìn)行數(shù)據(jù)的輸入與輸出操作時(shí),必須先打開這個(gè)文件。對(duì)于隨機(jī)文件而言,首先要以隨機(jī)模式打開文件,其使用語(yǔ)法如下:Open文件名ForRandomAs#文件號(hào)[Len=記錄長(zhǎng)度]與順序文件不同的是,隨機(jī)文件讀、寫兩種操作都用Random模式打開,一經(jīng)打開即可同時(shí)進(jìn)行讀、寫操作。也就是說(shuō),對(duì)隨機(jī)文件進(jìn)行某種操作后不必關(guān)閉文件就可進(jìn)行另一種操作。因此我們才稱其為隨機(jī)讀寫文件,既隨機(jī)文件。另外,在Open語(yǔ)句中還要指明文件中單個(gè)記錄的長(zhǎng)度,該長(zhǎng)度等于記錄中各字段長(zhǎng)度之和,且以字節(jié)為長(zhǎng)度單位。如果省略“Len=記錄長(zhǎng)度”子句,則以128個(gè)字節(jié)作為記錄長(zhǎng)度的默認(rèn)值。13.4.3隨機(jī)文件的讀寫操作1、文件指針在文件被打開后,將自動(dòng)生成一個(gè)文件指針。文件的讀寫操作都是在該指針指定的位置進(jìn)行的,比如:在我們使用Append模式打開一個(gè)文件時(shí),該文件的文件指針就指向被打開的文件的末尾。在我們以順序模式使用文件時(shí),我們是沒有必要考慮文件指針的位置的。因?yàn)轫樞蛭募x寫操作不能同時(shí)進(jìn)行。每進(jìn)行一次讀或?qū)懖僮鳎急仨氈匦麓蜷_文件,讀或?qū)懲曛笤訇P(guān)閉文件。這也就意味著,我們每次使用順序文件都是把該文件完全讀入內(nèi)存緩沖區(qū),然后再對(duì)它全部的數(shù)據(jù)進(jìn)行讀寫操作。也正因?yàn)榇耍褂庙樞蛭募r(shí),我們不必過(guò)多考慮它的文件指針的位置。對(duì)于隨機(jī)文件和二進(jìn)制文件,要求我們能夠?qū)υ撐募腥魏我粋€(gè)記錄進(jìn)行隨機(jī)的讀寫操作,這也就要求我們能夠人為的改變文件指針的位置。因此也就用到了Seek語(yǔ)句與Seek函數(shù)?!eek()函數(shù),使用語(yǔ)法如下:Seek(文件號(hào))該函數(shù)用來(lái)返回當(dāng)前文件指針的位置。對(duì)于隨機(jī)文件返回當(dāng)前記錄號(hào),對(duì)于二進(jìn)制文件返回從文件頭算起的字節(jié)數(shù)。·Seek語(yǔ)句,使用語(yǔ)法如下:

Seek#文件號(hào),位置該語(yǔ)句用來(lái)將文件指針定位到指定的位置,對(duì)于隨機(jī)文件“位置”指的是一個(gè)記錄號(hào),對(duì)于二進(jìn)制文件指定位到從文件頭算起的某個(gè)字節(jié)位置。2、隨機(jī)文件的寫數(shù)據(jù)操作向隨機(jī)文件中寫數(shù)據(jù)用Put語(yǔ)句,其使用語(yǔ)法如下:Put#文件號(hào),[記錄號(hào)],記錄變量其中文件號(hào)含義同前。記錄號(hào)是可選的,其取值范圍是1~231-1。該語(yǔ)句是將一個(gè)記錄變量的內(nèi)容寫入所打開的磁盤文件中指定的記錄位置處。記錄號(hào)必須是大于1的整數(shù),表示寫入的是第幾條記錄;若不指定記錄號(hào),則表示將變量?jī)?nèi)容寫在下一記錄位置,即最近執(zhí)行Get或Put語(yǔ)句后的下一個(gè)記錄位置,或最近一個(gè)Seek語(yǔ)句所指定的文件位置。3、隨機(jī)文件的讀數(shù)據(jù)操作使用Get語(yǔ)句從隨機(jī)文件讀取數(shù)據(jù),其使用語(yǔ)法如下:Get#文件號(hào),[記錄號(hào)],記錄變量其中,記錄變量的數(shù)據(jù)類型必須同文件中記錄的數(shù)據(jù)類型一致。該語(yǔ)句是從指定文件中,將一條由記錄號(hào)指定的記錄內(nèi)容讀入記錄變量中。記錄號(hào)概念同前,表示對(duì)第幾條記錄進(jìn)行操作,如果忽略記錄號(hào),則表示讀出當(dāng)前記錄后的那一條記錄。例如:Get#1,1,aStudent表示把1號(hào)文件中第一個(gè)記錄讀到aStudent變量中。例13-5(參看教材P263-266)13.5二進(jìn)制文件13.5.1二進(jìn)制文件的打開(建立)13.5.2向二進(jìn)制文件中寫數(shù)據(jù)13.5.3從二進(jìn)制文件中讀數(shù)據(jù)13.5.4一個(gè)使用二進(jìn)制模式對(duì)文件操作的具體實(shí)例二進(jìn)制文件中的內(nèi)容以字節(jié)基本單位進(jìn)行存取操作。與隨機(jī)文件相同的是二進(jìn)制文件打開后,讀與寫操作可同時(shí)進(jìn)行。因此,二進(jìn)制訪問(wèn)能提供對(duì)文件的完全控制,且因?yàn)槎M(jìn)制文件存儲(chǔ)的信息是和內(nèi)存數(shù)據(jù)保持完全一致的信息格式不需要再對(duì)數(shù)據(jù)進(jìn)行編碼轉(zhuǎn)換。所以當(dāng)要保持文件大小盡量小時(shí),應(yīng)使用二進(jìn)制文件。對(duì)二進(jìn)制文件操作時(shí)所使用的語(yǔ)句和對(duì)隨機(jī)文件進(jìn)行操作的語(yǔ)句與方法基本相似,都是使用Seek語(yǔ)句、Seek函數(shù)、Put方法和Get方法。但又稍有區(qū)別,讓我們一起來(lái)看其具體操作的方法。13.5.1二進(jìn)制文件的打開(建立)與其它幾種文件模式的打開語(yǔ)句一樣,在VB中打開二進(jìn)制文件,還是使用Open語(yǔ)句。其格式如下:Open文件名ForBinaryAs#文件號(hào)前面我們說(shuō)過(guò),二進(jìn)制文件與隨機(jī)文件的相同點(diǎn)是,在文件以二進(jìn)制模式打開后,讀寫操作可同時(shí)進(jìn)行??伤鼈冞€是有區(qū)別的,二進(jìn)制文件訪問(wèn)中的Open語(yǔ)句與隨機(jī)存取的Open語(yǔ)句是不同,它沒有指定Len部分。這是因?yàn)?,在Binary模式下進(jìn)行文件操作時(shí),存取數(shù)據(jù)的單位是字節(jié),而不是象隨機(jī)文件一樣以記錄為基本單位。所以,如果我們?cè)诙M(jìn)制文件訪問(wèn)的Open語(yǔ)句中包括了記錄長(zhǎng)度,則該長(zhǎng)度將被忽略。13.5.2向二進(jìn)制文件中寫數(shù)據(jù)向二進(jìn)制文件寫數(shù)據(jù)仍然使用Put#語(yǔ)句,其語(yǔ)法如下:Put#文件號(hào),[位置],變量其中“文件號(hào)”概念同前,“位置”是按字節(jié)計(jì)數(shù)的讀寫位置。若默認(rèn),則文件指針從頭到尾順序移動(dòng)。Put#語(yǔ)句向文件寫的字節(jié)數(shù)等于變量長(zhǎng)度。13.5.3從二進(jìn)制文件中讀數(shù)據(jù)從二進(jìn)制文件讀數(shù)據(jù)仍然使用Get#語(yǔ)句,其語(yǔ)法如下:Get#文件號(hào),[位置],變量其中“文件號(hào)”和“位置”概念同前,Get#語(yǔ)句從二進(jìn)制文件中讀出的字節(jié)數(shù)等于變量長(zhǎng)度。在二進(jìn)制文件讀寫的過(guò)程中,也常常用到Seek函數(shù)和Seek語(yǔ)句來(lái)定位和返回當(dāng)前文件指針:·Seek()函數(shù)使用語(yǔ)法如下:Seek(文件號(hào))對(duì)于二進(jìn)制文件來(lái)說(shuō),該函數(shù)用來(lái)返回以字節(jié)為單位,當(dāng)前文件指針的位置。·Seek語(yǔ)句使用語(yǔ)法如下:Seek文件號(hào),recnumber對(duì)于二進(jìn)制文件來(lái)說(shuō),該語(yǔ)句用來(lái)將文件指針定位到recnumber字節(jié)處。13.5.4一個(gè)使用二進(jìn)制模式對(duì)文件操作的具體實(shí)例在編制本實(shí)例程序之前,我們必須了解一些輔助知識(shí),以便我們能夠讀懂為什么我要這樣編制程序。首先,我們要了解24位真彩色BMP格式位圖的文件結(jié)構(gòu)。BMP(Bitmap-File)圖形文件是Windows采用的圖形文件格式,在Windows環(huán)境下運(yùn)行的所有圖象處理軟件都支持BMP圖象文件格式。Windows系統(tǒng)內(nèi)部各種圖像繪制操作都是以BMP格式為基礎(chǔ)的。一個(gè)典型的位圖文件可看成由4個(gè)部分組成:位圖文件頭(bitmap-fileheader)、位圖信息頭(bitmap-informationheader)、色表(colortable)和實(shí)際位圖數(shù)據(jù)的字節(jié)陣列,其具體形式如圖13-10所示。其中前面3個(gè)部分包含關(guān)于這個(gè)圖形文件的信息,這不是我們這個(gè)程序討論的重點(diǎn),不對(duì)其進(jìn)行詳細(xì)的說(shuō)明。只要我們了解到這3個(gè)部分,占據(jù)了一個(gè)24位真彩色BMP位圖文件的前54個(gè)字節(jié)就可以了。位圖文件頭位圖信息頭色表實(shí)際位圖數(shù)據(jù)圖13-10典型BMP文件結(jié)構(gòu)示意圖對(duì)于一個(gè)24位真彩色BMP位圖文件,其圖像上每個(gè)點(diǎn)的色彩分別由圖象文件“實(shí)際位圖數(shù)據(jù)”部分中的三個(gè)字節(jié),也就是24位來(lái)表示該點(diǎn)的RGB值,每個(gè)字節(jié)的值對(duì)應(yīng)一種組成混合光的基礎(chǔ)光(紅色、綠色、藍(lán)色)的強(qiáng)度。這一點(diǎn)非常類似于VB中的RGB函數(shù)。因此我們可以利用這類文件的這一特點(diǎn)來(lái)編寫以下程序。例13-6(參看教材P268-270)13.6文件基本操作13.6.1文件的刪除13.6.2文件的復(fù)制和移動(dòng)13.6.3文件(目錄)重命名除了讀寫文件外,VisualBasic還提供了對(duì)文件進(jìn)行刪除、移動(dòng)、復(fù)制和重命名等,對(duì)文件進(jìn)行基本操作時(shí)使用的語(yǔ)句。13.6.1文件的刪除在VB中對(duì)文件進(jìn)行刪除操作是通過(guò)Kill語(yǔ)句來(lái)實(shí)現(xiàn)的,其格式如下:Kill“文件名”參數(shù)“文件名”是一個(gè)用來(lái)指定欲將其刪除的文件名字符串表達(dá)式。例如:Kill“D:\VB\datal.dat”‘刪除D盤VB目錄內(nèi)data1.dat文件。Kill“D:\VB\dat\*.*”‘刪除D盤VB目錄內(nèi)所有文件。由上面實(shí)例中第二個(gè)Kill語(yǔ)句我們可以看出,Kill語(yǔ)句支持多字符(*)和單字符(?)兩種通配符號(hào)來(lái)完成對(duì)文件操作。(這點(diǎn)很類似DOS命令的操作方法)Kill語(yǔ)句具有一定的危險(xiǎn)性,因?yàn)槭褂肒ill語(yǔ)句對(duì)文件進(jìn)行刪除操作時(shí),不會(huì)將文件移到計(jì)算機(jī)的垃圾箱中,而是將文件徹底的從硬盤刪除掉。而且,在進(jìn)行刪除操作時(shí)不會(huì)給出任何提示,因此我們?cè)诔绦蛑惺褂迷撜Z(yǔ)句時(shí),一定要在刪除文件前給出一些提示信息。13.6.2文件的復(fù)制和移動(dòng)在VisualBasic中文件的復(fù)制操作是通過(guò)FileCopy語(yǔ)句來(lái)實(shí)現(xiàn)的,其格式如下:FileCopy“源文件”,“目標(biāo)文件”用FileCopy語(yǔ)句可以把源文件拷貝到目標(biāo)文件,拷貝后兩個(gè)文件的內(nèi)容完全一致。例如:FileCopy“source.doc”,“target.doc”將當(dāng)前目錄下的一個(gè)文件拷貝到同一目錄下的另一個(gè)文件。如果要將一個(gè)目錄下某一文件拷貝到另一個(gè)目錄下,則必須包括路徑信息,例如:FileCopy“c:\abc\source.doc”,“d:\xy\target.doc”使用FileCopy語(yǔ)句時(shí),我們必須保證源文件的存在和目標(biāo)文件中路徑信息的正確。且FileCopy語(yǔ)句中不能使用通配符號(hào)(*或?)。此外,F(xiàn)ileCopy不能對(duì)已由VisualBasic打開的文件進(jìn)行復(fù)制操作。VB并沒有為我們提供專門的文件移動(dòng)語(yǔ)句??晌募囊苿?dòng)操作其實(shí)可以分為以下兩步操作:(1)復(fù)制文件。(2)將源文件刪除。此外,用Name語(yǔ)句也可以實(shí)現(xiàn)文件的移動(dòng)操作。13.6.3文件(目錄)重命名VB中文件的改名可以通過(guò)Name語(yǔ)句來(lái)實(shí)現(xiàn),其格式如下:Name“原文件名”As“新文件名”其中參數(shù)“原文件名”用來(lái)指定已經(jīng)存在的文件名和位置,可以包含目錄信息?!靶挛募眳?shù)用來(lái)指定改名后新的文件名和位置。注意,“新文件名”參數(shù)所指定的文件名不能是已經(jīng)存在的文件名,否則會(huì)產(chǎn)生錯(cuò)誤。在Name語(yǔ)句的參數(shù)中也不能使用通配符號(hào)(*或?)。還有就是如果“新文件名”參數(shù)和“原文件名”參數(shù)中,文件的路徑信息不同的話則Name語(yǔ)句在改變文件名的同時(shí)還會(huì)對(duì)文件進(jìn)行移動(dòng)操作。例如:PrivateSubForm_Load()Name"c:\a.wav"As"d:\abc.wav"EndSub該例中Name語(yǔ)句的作用是,將c:\盤根目錄上的a.wav文件改名為abc.wav然后將其移動(dòng)到的d:\盤根目錄上。另外,除了能夠改變某文件的名字外,Name語(yǔ)句還可以改變硬盤上某目錄的名稱。使用方法與對(duì)文件的操作一樣,不再贅述。但有一點(diǎn)需要注意,對(duì)目錄進(jìn)行改名操作時(shí),不能像操作文件一樣進(jìn)行跨驅(qū)動(dòng)器移動(dòng)操作,否則產(chǎn)生錯(cuò)誤。13.7文件系統(tǒng)控件13.7.1驅(qū)動(dòng)器列表框和目錄列表框13.7.2文件列表框文件系統(tǒng)控件包括驅(qū)動(dòng)器列表框、目錄列表框和文件列表框。這三個(gè)列表框經(jīng)常結(jié)合起來(lái)使用。驅(qū)動(dòng)器列表框是下拉式列表框,默認(rèn)時(shí)在用戶系統(tǒng)上顯示當(dāng)前驅(qū)動(dòng)器。當(dāng)該控件獲得焦點(diǎn)時(shí),用戶可以從中選擇任何有效的驅(qū)動(dòng)器標(biāo)識(shí)符。目錄列表框從最高層目錄開始顯示用戶系統(tǒng)上的當(dāng)前驅(qū)動(dòng)器目錄結(jié)構(gòu)。在列表中上下移動(dòng)時(shí)將依次突出顯示每個(gè)目錄項(xiàng)。文件列表框在運(yùn)行時(shí)顯示由Path屬性指定的包含在目錄中的文件。結(jié)合使用這三個(gè)控件和前面我們學(xué)習(xí)的文件操作語(yǔ)句,可以編寫完善的文件管理程序。13.7.1驅(qū)動(dòng)器列表框和目錄列表框驅(qū)動(dòng)器列表框和目錄列表框都是下拉式列表框,在工具箱中的圖標(biāo)如圖13-14所示。驅(qū)動(dòng)器列表框目錄列表框圖13-14驅(qū)動(dòng)器列表框和目錄列表框在工具箱中顯示的圖標(biāo)1、驅(qū)動(dòng)器列表框驅(qū)動(dòng)器列表框及后面介紹的目錄列表框、文件列表框有許多標(biāo)準(zhǔn)屬性,包括Enabled、FontBold、FontItalic、FontName、Fontsize、Height、Left、Name、Top、Visible、Width。而這些屬性的作用都與其它一些控件基本類似,這里就不再贅述。此外,驅(qū)動(dòng)器列表框還有一個(gè)Drive屬性,用來(lái)設(shè)置或返回所選擇的驅(qū)動(dòng)器名。Drive屬性只能用程序代碼設(shè)置,不能通過(guò)屬性窗口設(shè)置。其格式為:object.Drive=驅(qū)動(dòng)器字符串例如:Drive1.Drive=“c:\”‘Drive1是一個(gè)驅(qū)動(dòng)器列表框?qū)ο蟮拿Q在程序執(zhí)行期間,驅(qū)動(dòng)器列表框下拉顯示系統(tǒng)所擁有的所有可用驅(qū)動(dòng)器名稱。在一般情況下,只顯示當(dāng)前的磁盤驅(qū)動(dòng)器名稱。如果單擊列表框右端向下的箭頭,則把計(jì)算機(jī)所有的驅(qū)動(dòng)器名稱全部在下拉列表中顯示出來(lái),如圖13-15所示。單擊某個(gè)驅(qū)動(dòng)器名,即可把它變?yōu)轵?qū)動(dòng)器列表框?qū)ο蟮漠?dāng)前驅(qū)動(dòng)器。同時(shí)還會(huì)觸發(fā)該驅(qū)動(dòng)器列表框?qū)ο蟮腃hange事件。圖13-15運(yùn)行時(shí)的驅(qū)動(dòng)器列表控件2、目錄列表框目錄列表框用來(lái)顯示當(dāng)前驅(qū)動(dòng)器上的目錄結(jié)構(gòu)。剛建立時(shí)顯示當(dāng)前驅(qū)動(dòng)器的頂層目錄和當(dāng)前目錄。頂層目錄用一個(gè)打開的文件夾表示,當(dāng)前目錄用一個(gè)加了陰影的文件夾來(lái)表示,當(dāng)前目錄下的子目錄用合著的文件夾來(lái)表示,如圖13-16所示。圖13-16運(yùn)行時(shí)的目錄列表控件目錄列表框常用屬性是Path,該屬性用來(lái)設(shè)置和返回目錄列表框中所顯示目錄的路徑。其語(yǔ)法如下:object.Path=路徑字符串或:字符串變量=object.Path例如:Dir1.Path=“C:\Windows”‘Dir1是一個(gè)目錄列表框?qū)ο蟮拿QPrintDir1.Path在目錄列表框中只能顯示當(dāng)前驅(qū)動(dòng)器上的目錄。如果要顯示其他驅(qū)動(dòng)器上的目錄,必須改變路徑,即重新設(shè)置目錄列表框的Path屬性。Path屬性只能在程序代碼中設(shè)置,不能在屬性窗口中設(shè)置。它的功能類似于DOS下的CD命令,用來(lái)改變目錄路徑。對(duì)目錄列表框來(lái)說(shuō),當(dāng)Path屬性值改變時(shí),將引發(fā)其自身的Change事件。例13-7(參看教材P273-274)13.7.2文件列表框用驅(qū)動(dòng)器列表框和目錄列表框可以指定當(dāng)前驅(qū)動(dòng)器和當(dāng)前目錄,而文件列表框可以用來(lái)顯示當(dāng)前目錄下的文件(可以通過(guò)Path屬性改變)。文件列表框的默認(rèn)控件名是File1。在工具箱中,文件列表框的圖標(biāo)為。1、文件列表框控件的屬性與文件列表框有關(guān)的屬性較多,介紹如下:(1)Path屬性該屬用來(lái)設(shè)置文件列表框中所顯示文件所在目錄的路徑。其作用和目錄列表框?qū)ο蠡鞠嗤?,用法也相同。主要是用?lái)使其能夠和目錄列表框?qū)ο筮M(jìn)行同步操作。(2)Pattern屬性Pattern屬性用來(lái)設(shè)置在執(zhí)行時(shí)要顯示的某一種類型的文件,它可以在設(shè)計(jì)階段用屬性窗口設(shè)置,也可以通過(guò)程序代碼設(shè)置。在默認(rèn)情

溫馨提示

  • 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)論