




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章中文Windows9895使用基礎(chǔ)第三章中文Windows9895使用基礎(chǔ) 文件是指存放在外存儲(chǔ)器文件是指存放在外存儲(chǔ)器(如磁盤如磁盤)上的信息集合上的信息集合 使用文件可以將應(yīng)用程序所處理的數(shù)據(jù)以文件的形式保使用文件可以將應(yīng)用程序所處理的數(shù)據(jù)以文件的形式保存起來(lái)存起來(lái) 程序文件和數(shù)據(jù)文件程序文件和數(shù)據(jù)文件 本章主要內(nèi)容本章主要內(nèi)容 數(shù)據(jù)文件概述數(shù)據(jù)文件概述 順序文件順序文件 隨機(jī)文件隨機(jī)文件 文件基本操作文件基本操作 文件系統(tǒng)對(duì)象文件系統(tǒng)對(duì)象(FSO)簡(jiǎn)介簡(jiǎn)介第第8 8章章 數(shù)據(jù)文件數(shù)據(jù)文件第三章中文Windows9895使用基礎(chǔ) 8.1.1 數(shù)據(jù)文件的結(jié)構(gòu)數(shù)據(jù)文件的結(jié)構(gòu) 數(shù)據(jù)文件由記
2、錄組成,記錄由字段組成,字段由字符組成數(shù)據(jù)文件由記錄組成,記錄由字段組成,字段由字符組成 記錄記錄1 數(shù)據(jù)文件數(shù)據(jù)文件記錄記錄2 學(xué)號(hào)學(xué)號(hào) 姓名姓名 951001 951001 張三張三 學(xué)號(hào)學(xué)號(hào) 姓名姓名 951002 951002 李四李四 字段字段 8.1 8.1 數(shù)據(jù)文件概念數(shù)據(jù)文件概念第三章中文Windows9895使用基礎(chǔ) (1)順序文件:文本文件。文件中的記錄按順序一個(gè)接順序文件:文本文件。文件中的記錄按順序一個(gè)接一個(gè)地排列。無(wú)法靈活地隨意存取它。只適用于有規(guī)律的、一個(gè)地排列。無(wú)法靈活地隨意存取它。只適用于有規(guī)律的、不經(jīng)常修改的數(shù)據(jù)不經(jīng)常修改的數(shù)據(jù) (2)隨機(jī)文件:隨機(jī)文件的每一
3、個(gè)記錄都有固定的長(zhǎng)度,隨機(jī)文件:隨機(jī)文件的每一個(gè)記錄都有固定的長(zhǎng)度,每一個(gè)記錄都有記錄號(hào),這種文件的特點(diǎn)是允許用戶存取文每一個(gè)記錄都有記錄號(hào),這種文件的特點(diǎn)是允許用戶存取文件中任一個(gè)記錄。可以同時(shí)進(jìn)行讀或?qū)懖僮鞔嫒牒妥x出速度件中任一個(gè)記錄。可以同時(shí)進(jìn)行讀或?qū)懖僮鞔嫒牒妥x出速度較快,數(shù)據(jù)容易更新較快,數(shù)據(jù)容易更新 (3)二進(jìn)制文件:可理解為長(zhǎng)度為二進(jìn)制文件:可理解為長(zhǎng)度為1的特殊的隨機(jī)文件的特殊的隨機(jī)文件8.1.2 文件類型文件類型第三章中文Windows9895使用基礎(chǔ) (1) 打開打開(或新建或新建)文件文件 (2) 進(jìn)行讀、寫操作進(jìn)行讀、寫操作 系統(tǒng)設(shè)置文件指針,用來(lái)記住當(dāng)前讀寫的位置系統(tǒng)
4、設(shè)置文件指針,用來(lái)記住當(dāng)前讀寫的位置 (3) 關(guān)閉文件關(guān)閉文件 8.1.3 文件處理的一般步驟文件處理的一般步驟第三章中文Windows9895使用基礎(chǔ) 1. 打開文件打開文件(Open) Open 文件名文件名 For 模式模式Access 存取類型存取類型鎖定鎖定 As #文件號(hào)文件號(hào)Len=記錄長(zhǎng)度記錄長(zhǎng)度 說(shuō)明說(shuō)明:(1)文件名;文件名; (2) 模式用于指定文件訪問(wèn)的方式模式用于指定文件訪問(wèn)的方式,包括:,包括: Append從文件末尾添加從文件末尾添加 Binary二進(jìn)制文件二進(jìn)制文件 Input順序輸入順序輸入 Output順序輸出順序輸出 Random隨機(jī)存取方式隨機(jī)存取方式
5、(3)文件號(hào)文件號(hào)(或稱文件緩沖區(qū)或稱文件緩沖區(qū)) (4)存取類型:訪問(wèn)文件的類型存取類型:訪問(wèn)文件的類型,為,為Read(只讀只讀)、Write(只寫只寫)、 Read Write(讀寫讀寫) (5)鎖定:限制其他用戶或其他進(jìn)程對(duì)文件進(jìn)行讀寫操作鎖定:限制其他用戶或其他進(jìn)程對(duì)文件進(jìn)行讀寫操作 Shared(共享共享)、Lock Read(禁止讀禁止讀)、Lock Write(禁止寫禁止寫)、 Lock Read Write(禁止讀寫禁止讀寫) (6)Len:用來(lái)指定每個(gè)記錄的長(zhǎng)度:用來(lái)指定每個(gè)記錄的長(zhǎng)度(字節(jié)數(shù)字節(jié)數(shù)) 示例:示例: Open d:cj1.dat For Output As
6、#18.1.4 文件的打開和關(guān)閉文件的打開和關(guān)閉第三章中文Windows9895使用基礎(chǔ)2. 關(guān)閉文件關(guān)閉文件(Close) 打開的文件使用完后必須關(guān)閉。打開的文件使用完后必須關(guān)閉。 關(guān)閉文件的語(yǔ)句格式:關(guān)閉文件的語(yǔ)句格式: Close # 文件號(hào)文件號(hào)1 ,# 文件號(hào)文件號(hào)2 示例:示例: Close #1第三章中文Windows9895使用基礎(chǔ) 1. FreeFile函數(shù)函數(shù) 格式:格式:FreeFile 功能:返回一個(gè)在程序中沒有使用的文件號(hào)功能:返回一個(gè)在程序中沒有使用的文件號(hào) 示例:示例: Open D:My For Output As FileNo 2. Seek語(yǔ)句和語(yǔ)句和See
7、k函數(shù)函數(shù) Seek函數(shù)的格式:函數(shù)的格式:Seek(文件號(hào)文件號(hào)) 功能:返回文件指針的當(dāng)前位置功能:返回文件指針的當(dāng)前位置 對(duì)于隨機(jī)文件,對(duì)于隨機(jī)文件,Seek函數(shù)返回指針當(dāng)前所指的記錄號(hào)。對(duì)于順序文件,函數(shù)返回指針當(dāng)前所指的記錄號(hào)。對(duì)于順序文件,Seek函數(shù)返回指針?biāo)诘漠?dāng)前字節(jié)位置函數(shù)返回指針?biāo)诘漠?dāng)前字節(jié)位置(從頭算起的字節(jié)數(shù)從頭算起的字節(jié)數(shù)) Seek語(yǔ)句的格式:語(yǔ)句的格式:Seek #文件號(hào),位置文件號(hào),位置 功能:將指定文件的文件指針設(shè)置在指定位置,以便進(jìn)行下功能:將指定文件的文件指針設(shè)置在指定位置,以便進(jìn)行下一次讀或?qū)懖僮饕淮巫x或?qū)懖僮?對(duì)于隨機(jī)文件,對(duì)于隨機(jī)文件,“位置位置
8、”是一個(gè)記錄號(hào);對(duì)于順序文件,是一個(gè)記錄號(hào);對(duì)于順序文件,“位置位置”表示字節(jié)表示字節(jié)位置位置 8.1.5 8.1.5 相關(guān)的語(yǔ)句和函數(shù)相關(guān)的語(yǔ)句和函數(shù) 第三章中文Windows9895使用基礎(chǔ) 3. Eof函數(shù)函數(shù) 格式:格式:Eof(文件號(hào)文件號(hào)) 功能:測(cè)試與文件號(hào)相關(guān)的文件是否已達(dá)到文件的結(jié)束功能:測(cè)試與文件號(hào)相關(guān)的文件是否已達(dá)到文件的結(jié)束位置。如果是,函數(shù)值為真值,否則為假值。位置。如果是,函數(shù)值為真值,否則為假值。 使用使用Eof是為了避免在文件結(jié)束處讀取數(shù)據(jù)而發(fā)生錯(cuò)誤是為了避免在文件結(jié)束處讀取數(shù)據(jù)而發(fā)生錯(cuò)誤 4. Lof函數(shù)函數(shù) 格式:格式:Lof(文件名文件名) 功能:返回與文
9、件號(hào)相關(guān)的文件的總字節(jié)數(shù)功能:返回與文件號(hào)相關(guān)的文件的總字節(jié)數(shù) 5Loc函數(shù)函數(shù) 格式:格式:Loc(文件號(hào)文件號(hào)) 功能:返回與文件號(hào)相關(guān)的文件的當(dāng)前讀寫位置功能:返回與文件號(hào)相關(guān)的文件的當(dāng)前讀寫位置 第三章中文Windows9895使用基礎(chǔ) 8.2.1 順序文件的寫入操作順序文件的寫入操作 以以O(shè)utput或或Append方式打開文件,然后使用方式打開文件,然后使用Write#語(yǔ)句語(yǔ)句或或Print#語(yǔ)句將數(shù)據(jù)寫入文件中語(yǔ)句將數(shù)據(jù)寫入文件中 1. Write語(yǔ)句語(yǔ)句 格式:格式:Write #文件號(hào)文件號(hào) ,表達(dá)式表,表達(dá)式表 功能:將表達(dá)式的值寫到與文件號(hào)相關(guān)的順序文件中功能:將表達(dá)式的
10、值寫到與文件號(hào)相關(guān)的順序文件中 每個(gè)每個(gè)Write語(yǔ)句向順序文件寫入一個(gè)記錄語(yǔ)句向順序文件寫入一個(gè)記錄(不定長(zhǎng)不定長(zhǎng)),它會(huì)自,它會(huì)自動(dòng)地用逗號(hào)分開每個(gè)表達(dá)式的值。給字符串加上雙引號(hào)動(dòng)地用逗號(hào)分開每個(gè)表達(dá)式的值。給字符串加上雙引號(hào) 在最后一個(gè)字符寫入后,插入一個(gè)回車換行符在最后一個(gè)字符寫入后,插入一個(gè)回車換行符(Chr(13) + Chr(10),以此作為記錄結(jié)束的標(biāo)記。,以此作為記錄結(jié)束的標(biāo)記。 示例:示例:Write #1, Good Afternoon, 19988.28.2 順序文件順序文件第三章中文Windows9895使用基礎(chǔ) 把把150的的50個(gè)整數(shù),以及這些數(shù)中能被個(gè)整數(shù),以及
11、這些數(shù)中能被7整除的數(shù)分別整除的數(shù)分別存入兩個(gè)文件中,文件名為存入兩個(gè)文件中,文件名為num1和和num2,文件存放在,文件存放在VB缺缺省文件夾下省文件夾下 Private Sub Form_Load() Open num1.txt For Output As #1 Open num2.txt For Output As #2 For i = 1 To 50 Write #1, i If i Mod 7 = 0 Then Write #2, i Next i Close #1, #2 Unload Me End Sub 說(shuō)明:說(shuō)明:num1.txt文件中一共寫入文件中一共寫入50個(gè)記錄,而個(gè)
12、記錄,而num2.txt文件只寫入其文件只寫入其中能被中能被7整除的若干個(gè)記錄整除的若干個(gè)記錄例例8.1 把把150各數(shù)及能被各數(shù)及能被7整除的數(shù)分別存入兩個(gè)文件中整除的數(shù)分別存入兩個(gè)文件中第三章中文Windows9895使用基礎(chǔ) 在例在例8.1所生成的所生成的num2.txt文件中,存放了若干個(gè)能被文件中,存放了若干個(gè)能被7整除的數(shù),現(xiàn)要求再加入整除的數(shù),現(xiàn)要求再加入51200范圍內(nèi)能被范圍內(nèi)能被7整除的數(shù)整除的數(shù) 程序代碼如下程序代碼如下: Private Sub Form_Load() Open num2.txt For Append As #1 For i = 51 To 200 If
13、 i Mod 7 = 0 Then Write #1, i Next i Close #1 Unload Me End Sub例例8.2 在在num2.txt文件中加入文件中加入51200范圍內(nèi)能范圍內(nèi)能 被被7整除的數(shù)整除的數(shù)第三章中文Windows9895使用基礎(chǔ) 輸入某小組輸入某小組5名學(xué)生的成績(jī)名學(xué)生的成績(jī)(表表8.1),存放在,存放在“我的文我的文檔檔”(C:My Documents)文件夾下的新建順序文件文件夾下的新建順序文件Cj2.txt 設(shè)計(jì)步驟如下:設(shè)計(jì)步驟如下: (1)創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對(duì)象屬性創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對(duì)象屬性例例8.3 建立學(xué)生成績(jī)順序文件建
14、立學(xué)生成績(jī)順序文件Cj2.txt第三章中文Windows9895使用基礎(chǔ) (2) 設(shè)置事件過(guò)程設(shè)置事件過(guò)程 Form_Load():新建文件:新建文件 Command1_Click():接收錄入信息,并以一個(gè)記錄存入文件中:接收錄入信息,并以一個(gè)記錄存入文件中 Command2_Click():關(guān)閉文件和結(jié)束程序運(yùn)行:關(guān)閉文件和結(jié)束程序運(yùn)行 Private Sub Form_Load() Open “C:my documentsCj2.txt“ For Output As #1 End Sub Private Sub Command1_Click() Dim num As String * 6
15、, name As String * 8, score As Integer num = Text1.Text name = Text2.Text score = Val(Text3.Text) Write #1, num, name, score 存入記錄存入記錄 Text1.Text = 存完存完1個(gè)記錄后清空個(gè)記錄后清空 Text2.Text = Text3.Text = Text1.SetFocus 設(shè)置焦點(diǎn)設(shè)置焦點(diǎn) End Sub第三章中文Windows9895使用基礎(chǔ) Private Sub Command2_Click() Close #1 End End Sub 程序運(yùn)行完成后
16、,用程序運(yùn)行完成后,用Windows記事本來(lái)打開該順序文件記事本來(lái)打開該順序文件(文本文件文本文件),即可看到存入的文件內(nèi)容,即可看到存入的文件內(nèi)容說(shuō)明:在顯示的文件內(nèi)容中,字符串說(shuō)明:在顯示的文件內(nèi)容中,字符串(學(xué)號(hào)、姓名學(xué)號(hào)、姓名)兩邊的引號(hào)兩邊的引號(hào)是系統(tǒng)自動(dòng)加入的。字段之間通過(guò)逗號(hào)隔開是系統(tǒng)自動(dòng)加入的。字段之間通過(guò)逗號(hào)隔開第三章中文Windows9895使用基礎(chǔ) 2. Print語(yǔ)句語(yǔ)句 格式:格式:Print #文件號(hào)文件號(hào),表達(dá)式表,表達(dá)式表 作用與作用與Write一樣。將一個(gè)或多個(gè)表達(dá)式的值寫一樣。將一個(gè)或多個(gè)表達(dá)式的值寫到與文件號(hào)相關(guān)的順序文件中。其輸出數(shù)據(jù)格式與到與文件號(hào)相關(guān)
17、的順序文件中。其輸出數(shù)據(jù)格式與Print方法在窗體上輸出格式相似。方法在窗體上輸出格式相似。 示例:示例: Print #1, num, name, score 對(duì)應(yīng)按區(qū)格式對(duì)應(yīng)按區(qū)格式 Print #1, num;name;score 對(duì)應(yīng)緊湊格式對(duì)應(yīng)緊湊格式第三章中文Windows9895使用基礎(chǔ) 先用先用Input方式打開文件,然后采用方式打開文件,然后采用Input或或Line Input語(yǔ)語(yǔ)句從文件中讀出數(shù)據(jù)。通常,句從文件中讀出數(shù)據(jù)。通常,Input用來(lái)讀出用來(lái)讀出Write寫入的記寫入的記錄內(nèi)容,而錄內(nèi)容,而Line Input用來(lái)讀出用來(lái)讀出Print寫入的記錄內(nèi)容寫入的記錄內(nèi)
18、容 1. Input語(yǔ)句語(yǔ)句 一般格式:一般格式:Input #文件號(hào),變量名表文件號(hào),變量名表 功能:從指定文件中讀出一個(gè)記錄。變量個(gè)數(shù)和類型應(yīng)功能:從指定文件中讀出一個(gè)記錄。變量個(gè)數(shù)和類型應(yīng)該與要讀取的記錄所存儲(chǔ)的數(shù)據(jù)一致。該與要讀取的記錄所存儲(chǔ)的數(shù)據(jù)一致。 打開文件時(shí),文件指針指向文件中的第打開文件時(shí),文件指針指向文件中的第1個(gè)記錄,以后每個(gè)記錄,以后每讀取一個(gè)記錄,指針就向前推進(jìn)一次。如果要重新從文件的讀取一個(gè)記錄,指針就向前推進(jìn)一次。如果要重新從文件的開頭讀數(shù)據(jù),則先關(guān)閉文件后打開開頭讀數(shù)據(jù),則先關(guān)閉文件后打開.2 順序文件的讀出操作順序文件的讀出操作第三章中文Win
19、dows9895使用基礎(chǔ) 程序代碼如下:程序代碼如下: Private Sub Form_Load() Show Open data1.txt For Output As #1 a = 123 : b$ = ABCD Write #1, a, b$ 存入存入 Close #1 Open data1.txt For Input As #1 Input #1, c, d$ 讀出讀出 Close #1 Print c, d$ End Sub 程序運(yùn)行后,輸出結(jié)果如下:程序運(yùn)行后,輸出結(jié)果如下: 123 ABCD例例8.4 一個(gè)存取數(shù)據(jù)的示例一個(gè)存取數(shù)據(jù)的示例第三章中文Windows9895使用基礎(chǔ)
20、已知文件已知文件“num2.txt”中存放一批能被中存放一批能被7整除的數(shù)整除的數(shù)(見例見例8.1及例及例8.2),現(xiàn)要求把這些數(shù)顯示出來(lái)。每行顯示,現(xiàn)要求把這些數(shù)顯示出來(lái)。每行顯示4個(gè)數(shù)。個(gè)數(shù)。 Private Sub Form_Load() Show k = 0 Open num2.txt For Input As #1 Do While Not EOF(1) 文件未結(jié)束時(shí),循環(huán)文件未結(jié)束時(shí),循環(huán) Input #1, x Print x, k = k + 1 If k Mod 4 = 0 Then Print 每顯示每顯示4個(gè)數(shù)后換行個(gè)數(shù)后換行 Loop Close #1 End Sub例
21、例8.5 從文件從文件“num2.txtnum2.txt”中讀取數(shù)據(jù)中讀取數(shù)據(jù)第三章中文Windows9895使用基礎(chǔ) 從文件從文件Cj2.txt(見例見例8.3)中讀出中讀出5個(gè)學(xué)生的資料,顯示在列個(gè)學(xué)生的資料,顯示在列表框中,并求出平均分表框中,并求出平均分 (1) 創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對(duì)象屬性創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對(duì)象屬性 例例8.6 從文件從文件Cj2.txt中讀出中讀出5個(gè)學(xué)生的資料個(gè)學(xué)生的資料第三章中文Windows9895使用基礎(chǔ) (2)編寫程序代碼編寫程序代碼 功能要求:?jiǎn)螕艄δ芤螅簡(jiǎn)螕簟安樵儾樵儭卑粹o時(shí),則打開文件后讀取文件按鈕時(shí),則打開文件后讀取文件中所有記
22、錄內(nèi)容,并顯示在列表框中所有記錄內(nèi)容,并顯示在列表框List1中,計(jì)算得到的平均中,計(jì)算得到的平均分顯示在文本框分顯示在文本框Text1中中 Private Sub Command1_Click() Dim n As String, m As String, s As Integer Dim x As String, t As Integer Open C:my documentsCj2.txt For Input As #1 t = 0 For i = 1 To 5 Input #1, n, m, s x = n + Space(2) + m + Str(s) List1.AddItem x
23、 :t = t + s Next i Close #1 Text1.Text = t / 5 End Sub第三章中文Windows9895使用基礎(chǔ) 2. Line Input語(yǔ)句語(yǔ)句格式:格式:Line Input #文件號(hào),字符型變量文件號(hào),字符型變量功能:從打開的順序文件中讀出一個(gè)記錄,即一行信息功能:從打開的順序文件中讀出一個(gè)記錄,即一行信息 例例8.7 Print語(yǔ)句和語(yǔ)句和Line Input語(yǔ)句配合使用的示例語(yǔ)句配合使用的示例 Private Sub Form_Load() Show Open mytxt.txt For Output As #1 a = 123 : b$ = A
24、BCD Print #1, a, b$ 寫入第寫入第1個(gè)記錄個(gè)記錄 Print #1, a; b$ 寫入第寫入第2個(gè)記錄個(gè)記錄 Close #1 Open mytxt.txt For Input As #1 Line Input #1, x$ 讀出第讀出第1個(gè)記錄個(gè)記錄 Print x$ Line Input #1, x$ 讀出第讀出第2個(gè)記錄個(gè)記錄 Print x$ Close #1 End Sub第三章中文Windows9895使用基礎(chǔ) 3. Input函數(shù)函數(shù) 格式:格式:Input(字符數(shù),字符數(shù),#文件號(hào)文件號(hào)) 功能:從文件中讀取指定字符數(shù)的字符功能:從文件中讀取指定字符數(shù)的字符
25、示例:示例:A$ =Input(20, #1) 順序文件的缺點(diǎn)是不能快速地存取所需的數(shù)據(jù),也不容順序文件的缺點(diǎn)是不能快速地存取所需的數(shù)據(jù),也不容易進(jìn)行數(shù)據(jù)的插入、刪除和修改等工作,因此對(duì)于經(jīng)常要修易進(jìn)行數(shù)據(jù)的插入、刪除和修改等工作,因此對(duì)于經(jīng)常要修改數(shù)據(jù)或取出文件中個(gè)別數(shù)據(jù),均不適合使用,但對(duì)于數(shù)據(jù)改數(shù)據(jù)或取出文件中個(gè)別數(shù)據(jù),均不適合使用,但對(duì)于數(shù)據(jù)變化不大,每次使用時(shí)又需要從頭往后順序地進(jìn)行讀寫,它變化不大,每次使用時(shí)又需要從頭往后順序地進(jìn)行讀寫,它還是不失為一種好的文件結(jié)構(gòu)還是不失為一種好的文件結(jié)構(gòu)第三章中文Windows9895使用基礎(chǔ) 隨機(jī)文件中每一個(gè)記錄定長(zhǎng),并設(shè)置記錄號(hào),記錄號(hào)從隨
26、機(jī)文件中每一個(gè)記錄定長(zhǎng),并設(shè)置記錄號(hào),記錄號(hào)從1開始。開始。 存取記錄時(shí),只要說(shuō)明所需記錄的編號(hào),系統(tǒng)就以此算存取記錄時(shí),只要說(shuō)明所需記錄的編號(hào),系統(tǒng)就以此算出記錄所在位置,然后加以寫入或讀出出記錄所在位置,然后加以寫入或讀出 8.3.1 初步認(rèn)識(shí)初步認(rèn)識(shí) 例例8.8 建立一個(gè)隨機(jī)文件,文件中包含建立一個(gè)隨機(jī)文件,文件中包含10個(gè)記錄,每個(gè)個(gè)記錄,每個(gè)記錄由一個(gè)數(shù)記錄由一個(gè)數(shù)(1至至10)的平方、立方和開方根三個(gè)數(shù)值組成,的平方、立方和開方根三個(gè)數(shù)值組成,以該數(shù)作為記錄號(hào)以該數(shù)作為記錄號(hào)8.3 8.3 隨機(jī)文件隨機(jī)文件第三章中文Windows9895使用基礎(chǔ) (1) (1) 通過(guò)通過(guò)Type.
27、End TypeType.End Type語(yǔ)句定義記錄類型,語(yǔ)句定義記錄類型,程序代碼如下:程序代碼如下: Private Type NumvalPrivate Type Numval Squre As Integer Squre As Integer Cube As Long Cube As Long Sqroot As Single Sqroot As Single End Type End Type (2) (2)利用某一過(guò)程利用某一過(guò)程( (本例采用事件過(guò)程本例采用事件過(guò)程Form_Load)Form_Load)來(lái)完成該隨機(jī)文件的存取操作,程序代碼如下:來(lái)完成該隨機(jī)文件的存取操作,程序
28、代碼如下:第三章中文Windows9895使用基礎(chǔ)Dim nv As numval 定義一個(gè)定義一個(gè)numval類型的變量類型的變量nv 寫入記錄程序段寫入記錄程序段Private Sub Form_Load() Open Data1.dat For Random As #1 Len = Len(nv) For i = 1 To 10 nv.squre = i * i nv.cube = i * i * i nv.sqroot = Sqr(i) Put #1, i, nv Next i 讀出記錄程序段讀出記錄程序段 Show For i = 2 To 10 Step 4 只讀出只讀出3個(gè)記錄個(gè)
29、記錄 Get #1, i, nv Print 第第; i; 號(hào)記錄號(hào)記錄:, nv.squre, nv.cube, nv.sqroot Next i Close #1End Sub第三章中文Windows9895使用基礎(chǔ) 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 第第2號(hào)記錄號(hào)記錄 4 8 1.414214 第第6號(hào)記錄號(hào)記錄 36 216 2.44949 第第10號(hào)記錄號(hào)記錄 100 1000 3.162278第三章中文Windows9895使用基礎(chǔ) 進(jìn)行隨機(jī)文件存取操作,大致包括以下一些內(nèi)容:進(jìn)行隨機(jī)文件存取操作,大致包括以下一些內(nèi)容: (1) 在打開文件進(jìn)行隨機(jī)訪問(wèn)之前,使用在打開文件進(jìn)行隨機(jī)訪問(wèn)之前,使用
30、TypeEnd Type語(yǔ)語(yǔ)句定義一個(gè)記錄類型句定義一個(gè)記錄類型(如如Numval),該類型包括多個(gè)數(shù)據(jù)項(xiàng),并,該類型包括多個(gè)數(shù)據(jù)項(xiàng),并與文件中記錄應(yīng)包括的域一致。與文件中記錄應(yīng)包括的域一致。 當(dāng)通過(guò)當(dāng)通過(guò)Dim定義一個(gè)變量定義一個(gè)變量(如如nv)為一個(gè)記錄類型為一個(gè)記錄類型Numval時(shí),時(shí),該變量也就包含該類型的多個(gè)數(shù)據(jù)項(xiàng),以后可通過(guò)該變量也就包含該類型的多個(gè)數(shù)據(jù)項(xiàng),以后可通過(guò)nv.squre、nv.cube、nv.sqroot進(jìn)行引用進(jìn)行引用 (2) 指定指定Random類型打開文件,記錄定長(zhǎng),打開文件后,就類型打開文件,記錄定長(zhǎng),打開文件后,就可以存或取任一個(gè)記錄可以存或取任一個(gè)記錄
31、(3)分別通過(guò)分別通過(guò)Get和和Put語(yǔ)句,并指定記錄號(hào)進(jìn)行讀一個(gè)記錄或語(yǔ)句,并指定記錄號(hào)進(jìn)行讀一個(gè)記錄或存一個(gè)記錄存一個(gè)記錄 一定要建立好記錄與記錄號(hào)之間的關(guān)系一定要建立好記錄與記錄號(hào)之間的關(guān)系第三章中文Windows9895使用基礎(chǔ) 1. 讀語(yǔ)句讀語(yǔ)句格式:格式:Get #文件號(hào),記錄號(hào),變量文件號(hào),記錄號(hào),變量功能:從一個(gè)隨機(jī)文件中讀出指定記錄到一個(gè)變量功能:從一個(gè)隨機(jī)文件中讀出指定記錄到一個(gè)變量 2. 寫語(yǔ)句寫語(yǔ)句 格式:格式:Put #文件號(hào),記錄號(hào),變量文件號(hào),記錄號(hào),變量功能:把變量的值寫入隨機(jī)文件的記錄中。功能:把變量的值寫入隨機(jī)文件的記錄中。 默認(rèn)情況下,記錄號(hào)編號(hào)為上一次使
32、用的記錄號(hào)加默認(rèn)情況下,記錄號(hào)編號(hào)為上一次使用的記錄號(hào)加18.3.2 存取操作存取操作第三章中文Windows9895使用基礎(chǔ) 建立一個(gè)有建立一個(gè)有5名職工工資信息的隨機(jī)文件,其中包括職名職工工資信息的隨機(jī)文件,其中包括職工的職工號(hào)工的職工號(hào)(從從001開始開始)、姓名及工資三種數(shù)據(jù)。采用職工號(hào)、姓名及工資三種數(shù)據(jù)。采用職工號(hào)為記錄號(hào)。設(shè)計(jì)步驟如下:為記錄號(hào)。設(shè)計(jì)步驟如下: (1) 在標(biāo)準(zhǔn)模塊在標(biāo)準(zhǔn)模塊Module1中用中用Type語(yǔ)句定義一個(gè)語(yǔ)句定義一個(gè)職工工資記錄類型職工工資記錄類型 Type Salary Name As String*8 定長(zhǎng)字符串類型定長(zhǎng)字符串類型 Salary As
33、 Long End Type 不必把職工號(hào)作為記錄的一個(gè)數(shù)據(jù)項(xiàng)存入文件不必把職工號(hào)作為記錄的一個(gè)數(shù)據(jù)項(xiàng)存入文件 (2)利用事件過(guò)程利用事件過(guò)程Form_Load來(lái)進(jìn)行文件處理來(lái)進(jìn)行文件處理例例8.98.9 建立職工工資隨機(jī)文件建立職工工資隨機(jī)文件第三章中文Windows9895使用基礎(chǔ) Private Sub Form_Load() Dim sal As salary Dim no As String * 3, recno As Integer Open Data2.dat For Random As #1 Len = Len(sal) For i = 1 To 5 s$ = 輸入第輸入第 +
34、 Str(i) + 個(gè)職工的個(gè)職工的 no = InputBox(s$ + 編號(hào)編號(hào)) = InputBox(s$ + 姓名姓名) sal.salary = Val(InputBox(s$ + 工資工資) recno = Val(no) 記錄號(hào)記錄號(hào) Put #1, recno, sal 存入記錄存入記錄 Next i Close #1 End End Sub 第三章中文Windows9895使用基礎(chǔ) (1)創(chuàng)建應(yīng)用程序的用戶界面創(chuàng)建應(yīng)用程序的用戶界面 (2)設(shè)置對(duì)象屬性設(shè)置對(duì)象屬性例8.10 對(duì)職工工資信息進(jìn)行查詢、增、改、除等操作對(duì)職工工資信息進(jìn)行查詢、增、改、除等操作第
35、三章中文Windows9895使用基礎(chǔ) (3)編寫程序代碼編寫程序代碼 在標(biāo)準(zhǔn)模塊在標(biāo)準(zhǔn)模塊Module1中定義記錄類型和建立一個(gè)通用過(guò)程中定義記錄類型和建立一個(gè)通用過(guò)程 Type salary name As String * 8 salary As Long End Type Public sal As salary, recno As Integer recno表示記錄號(hào)表示記錄號(hào) 檢查編號(hào)的通用過(guò)程檢查編號(hào)的通用過(guò)程 Function Cheno(no As String) As Boolean recno = Val(no) If recno 999 Then MsgBox 輸入的職
36、工號(hào)超出范圍輸入的職工號(hào)超出范圍, 0, 檢查編號(hào)檢查編號(hào) Cheno = True Else Cheno = False End If End Function第三章中文Windows9895使用基礎(chǔ) 利用事件過(guò)程利用事件過(guò)程Form_Load()來(lái)打開文件和顯示第來(lái)打開文件和顯示第一個(gè)記錄一個(gè)記錄 Private Sub Form_Load() Open Data1.dat For Random As #1 Len = Len(sal) Get #1, 1, sal Text1.Text = Format(1, 000) Text2.Text = Text3.Text =
37、 sal.salary End Sub第三章中文Windows9895使用基礎(chǔ) 編寫編寫“查詢查詢”按鈕的按鈕的Click事件過(guò)程事件過(guò)程 Private Sub Command1_Click() If Cheno(Text1.Text) Then Exit Sub If recno LOF(1) / Len(sal) Then MsgBox 無(wú)此記錄無(wú)此記錄 Exit Sub End If Get #1, recno, sal Text2.Text = Text3.Text = Str(sal.salary) Text1.SetFocus 設(shè)置焦點(diǎn)設(shè)置焦點(diǎn) End Sub第
38、三章中文Windows9895使用基礎(chǔ) 編寫編寫“增加增加”按鈕的按鈕的Click事件過(guò)程事件過(guò)程 Private Sub Command2_Click() If Cheno(Text1.Text) Then Exit Sub = Text2.Text sal.salary = Val(Text3.Text) Put #1, recno, sal Text1.SetFocus End Sub第三章中文Windows9895使用基礎(chǔ) 編寫編寫“清除清除”按鈕的按鈕的Click事件過(guò)程事件過(guò)程 Private Sub Command3_Click() If Cheno(Text1.Text) Then Exit Sub If recno LOF(1) / Len(sal) Then MsgBox 無(wú)此記錄無(wú)此記錄 Exit Sub End If = 記錄內(nèi)容清空記錄內(nèi)容清空 sal.salary = 0 Text2.Text = 文本框清空文本框清空 Text3.Text = Put #1, recno, sal Text1.SetFocus End Sub第三章中文
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024撫州職業(yè)技術(shù)學(xué)院輔導(dǎo)員招聘筆試真題
- 征求意見表2:文成縣糯米山藥種植與加工技術(shù)規(guī)程
- 2025年應(yīng)急救生系統(tǒng)項(xiàng)目合作計(jì)劃書
- Recycle 1(第1課時(shí)) 教案人教pep英語(yǔ)六年級(jí)上冊(cè)
- 繪畫語(yǔ)言及其在創(chuàng)作過(guò)程中的思想研究
- 6~9的加、減法第4課時(shí) 練一練 教案 2025人教版數(shù)學(xué)一年級(jí)上冊(cè)
- 在班隊(duì)活動(dòng)中重塑“愛的教育”
- 2024年深圳市光明區(qū)水務(wù)局招聘專干真題
- 2025年江蘇省第十屆大學(xué)生就業(yè)創(chuàng)業(yè)知識(shí)競(jìng)賽考試練習(xí)題庫(kù)(150題)【答案】
- 2025年江油市招聘屬公費(fèi)師范畢業(yè)生考試試題【答案】
- 聯(lián)通員工調(diào)查問(wèn)卷
- LY/T 1846-2009森林火災(zāi)成因和森林資源損失調(diào)查方法
- GB/T 1796.3-2017輪胎氣門嘴第3部分:卡扣式氣門嘴
- GB/T 1229-2006鋼結(jié)構(gòu)用高強(qiáng)度大六角螺母
- 關(guān)節(jié)軟骨、膠原組織及生物力學(xué)
- 復(fù)合材料結(jié)構(gòu)適航知識(shí)培訓(xùn)
- 《全過(guò)程工程咨詢》課件
- 《高等物理化學(xué)》課程教學(xué)大綱
- 02、Storm課程入門到精通storm3-1
- 8.5.2 直線與平面平行(第2課時(shí))直線與平面平行的性質(zhì)教學(xué)設(shè)計(jì)
- 萬(wàn)科物業(yè)管理公司全套制度最新版
評(píng)論
0/150
提交評(píng)論