版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第三章中文Windows9895使用基礎(chǔ)第三章中文Windows9895使用基礎(chǔ) 文件是指存放在外存儲(chǔ)器文件是指存放在外存儲(chǔ)器(如磁盤如磁盤)上的信息集合上的信息集合 使用文件可以將應(yīng)用程序所處理的數(shù)據(jù)以文件的形式保使用文件可以將應(yīng)用程序所處理的數(shù)據(jù)以文件的形式保存起來存起來 程序文件和數(shù)據(jù)文件程序文件和數(shù)據(jù)文件 本章主要內(nèi)容本章主要內(nèi)容 數(shù)據(jù)文件概述數(shù)據(jù)文件概述 順序文件順序文件 隨機(jī)文件隨機(jī)文件 文件基本操作文件基本操作 文件系統(tǒng)對象文件系統(tǒng)對象(FSO)簡介簡介第第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é)號學(xué)號 姓名姓名 951001 951001 張三張三 學(xué)號學(xué)號 姓名姓名 951002 951002 李四李四 字段字段 8.1 8.1 數(shù)據(jù)文件概念數(shù)據(jù)文件概念第三章中文Windows9895使用基礎(chǔ) (1)順序文件:文本文件。文件中的記錄按順序一個(gè)接順序文件:文本文件。文件中的記錄按順序一個(gè)接一個(gè)地排列。無法靈活地隨意存取它。只適用于有規(guī)律的、一個(gè)地排列。無法靈活地隨意存取它。只適用于有規(guī)律的、不經(jīng)常修改的數(shù)據(jù)不經(jīng)常修改的數(shù)據(jù) (2)隨機(jī)文件:隨機(jī)文件的每一
3、個(gè)記錄都有固定的長度,隨機(jī)文件:隨機(jī)文件的每一個(gè)記錄都有固定的長度,每一個(gè)記錄都有記錄號,這種文件的特點(diǎn)是允許用戶存取文每一個(gè)記錄都有記錄號,這種文件的特點(diǎn)是允許用戶存取文件中任一個(gè)記錄??梢酝瑫r(shí)進(jìn)行讀或?qū)懖僮鞔嫒牒妥x出速度件中任一個(gè)記錄??梢酝瑫r(shí)進(jìn)行讀或?qū)懖僮鞔嫒牒妥x出速度較快,數(shù)據(jù)容易更新較快,數(shù)據(jù)容易更新 (3)二進(jìn)制文件:可理解為長度為二進(jìn)制文件:可理解為長度為1的特殊的隨機(jī)文件的特殊的隨機(jī)文件8.1.2 文件類型文件類型第三章中文Windows9895使用基礎(chǔ) (1) 打開打開(或新建或新建)文件文件 (2) 進(jìn)行讀、寫操作進(jìn)行讀、寫操作 系統(tǒng)設(shè)置文件指針,用來記住當(dāng)前讀寫的位置系統(tǒng)
4、設(shè)置文件指針,用來記住當(dāng)前讀寫的位置 (3) 關(guān)閉文件關(guān)閉文件 8.1.3 文件處理的一般步驟文件處理的一般步驟第三章中文Windows9895使用基礎(chǔ) 1. 打開文件打開文件(Open) Open 文件名文件名 For 模式模式Access 存取類型存取類型鎖定鎖定 As #文件號文件號Len=記錄長度記錄長度 說明說明:(1)文件名;文件名; (2) 模式用于指定文件訪問的方式模式用于指定文件訪問的方式,包括:,包括: Append從文件末尾添加從文件末尾添加 Binary二進(jìn)制文件二進(jìn)制文件 Input順序輸入順序輸入 Output順序輸出順序輸出 Random隨機(jī)存取方式隨機(jī)存取方式
5、(3)文件號文件號(或稱文件緩沖區(qū)或稱文件緩沖區(qū)) (4)存取類型:訪問文件的類型存取類型:訪問文件的類型,為,為Read(只讀只讀)、Write(只寫只寫)、 Read Write(讀寫讀寫) (5)鎖定:限制其他用戶或其他進(jìn)程對文件進(jìn)行讀寫操作鎖定:限制其他用戶或其他進(jìn)程對文件進(jìn)行讀寫操作 Shared(共享共享)、Lock Read(禁止讀禁止讀)、Lock Write(禁止寫禁止寫)、 Lock Read Write(禁止讀寫禁止讀寫) (6)Len:用來指定每個(gè)記錄的長度:用來指定每個(gè)記錄的長度(字節(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)閉文件的語句格式:關(guān)閉文件的語句格式: Close # 文件號文件號1 ,# 文件號文件號2 示例:示例: Close #1第三章中文Windows9895使用基礎(chǔ) 1. FreeFile函數(shù)函數(shù) 格式:格式:FreeFile 功能:返回一個(gè)在程序中沒有使用的文件號功能:返回一個(gè)在程序中沒有使用的文件號 示例:示例: Open D:My For Output As FileNo 2. Seek語句和語句和See
7、k函數(shù)函數(shù) Seek函數(shù)的格式:函數(shù)的格式:Seek(文件號文件號) 功能:返回文件指針的當(dāng)前位置功能:返回文件指針的當(dāng)前位置 對于隨機(jī)文件,對于隨機(jī)文件,Seek函數(shù)返回指針當(dāng)前所指的記錄號。對于順序文件,函數(shù)返回指針當(dāng)前所指的記錄號。對于順序文件,Seek函數(shù)返回指針?biāo)诘漠?dāng)前字節(jié)位置函數(shù)返回指針?biāo)诘漠?dāng)前字節(jié)位置(從頭算起的字節(jié)數(shù)從頭算起的字節(jié)數(shù)) Seek語句的格式:語句的格式:Seek #文件號,位置文件號,位置 功能:將指定文件的文件指針設(shè)置在指定位置,以便進(jìn)行下功能:將指定文件的文件指針設(shè)置在指定位置,以便進(jìn)行下一次讀或?qū)懖僮饕淮巫x或?qū)懖僮?對于隨機(jī)文件,對于隨機(jī)文件,“位置位置
8、”是一個(gè)記錄號;對于順序文件,是一個(gè)記錄號;對于順序文件,“位置位置”表示字節(jié)表示字節(jié)位置位置 8.1.5 8.1.5 相關(guān)的語句和函數(shù)相關(guān)的語句和函數(shù) 第三章中文Windows9895使用基礎(chǔ) 3. Eof函數(shù)函數(shù) 格式:格式:Eof(文件號文件號) 功能:測試與文件號相關(guān)的文件是否已達(dá)到文件的結(jié)束功能:測試與文件號相關(guān)的文件是否已達(dá)到文件的結(jié)束位置。如果是,函數(shù)值為真值,否則為假值。位置。如果是,函數(shù)值為真值,否則為假值。 使用使用Eof是為了避免在文件結(jié)束處讀取數(shù)據(jù)而發(fā)生錯(cuò)誤是為了避免在文件結(jié)束處讀取數(shù)據(jù)而發(fā)生錯(cuò)誤 4. Lof函數(shù)函數(shù) 格式:格式:Lof(文件名文件名) 功能:返回與文
9、件號相關(guān)的文件的總字節(jié)數(shù)功能:返回與文件號相關(guān)的文件的總字節(jié)數(shù) 5Loc函數(shù)函數(shù) 格式:格式:Loc(文件號文件號) 功能:返回與文件號相關(guān)的文件的當(dāng)前讀寫位置功能:返回與文件號相關(guān)的文件的當(dāng)前讀寫位置 第三章中文Windows9895使用基礎(chǔ) 8.2.1 順序文件的寫入操作順序文件的寫入操作 以以O(shè)utput或或Append方式打開文件,然后使用方式打開文件,然后使用Write#語句語句或或Print#語句將數(shù)據(jù)寫入文件中語句將數(shù)據(jù)寫入文件中 1. Write語句語句 格式:格式:Write #文件號文件號 ,表達(dá)式表,表達(dá)式表 功能:將表達(dá)式的值寫到與文件號相關(guān)的順序文件中功能:將表達(dá)式的
10、值寫到與文件號相關(guān)的順序文件中 每個(gè)每個(gè)Write語句向順序文件寫入一個(gè)記錄語句向順序文件寫入一個(gè)記錄(不定長不定長),它會(huì)自,它會(huì)自動(dòng)地用逗號分開每個(gè)表達(dá)式的值。給字符串加上雙引號動(dòng)地用逗號分開每個(gè)表達(dá)式的值。給字符串加上雙引號 在最后一個(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 說明:說明: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é)生的成績名學(xué)生的成績(表表8.1),存放在,存放在“我的文我的文檔檔”(C:My Documents)文件夾下的新建順序文件文件夾下的新建順序文件Cj2.txt 設(shè)計(jì)步驟如下:設(shè)計(jì)步驟如下: (1)創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性例例8.3 建立學(xué)生成績順序文件建
14、立學(xué)生成績順序文件Cj2.txt第三章中文Windows9895使用基礎(chǔ) (2) 設(shè)置事件過程設(shè)置事件過程 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記事本來打開該順序文件記事本來打開該順序文件(文本文件文本文件),即可看到存入的文件內(nèi)容,即可看到存入的文件內(nèi)容說明:在顯示的文件內(nèi)容中,字符串說明:在顯示的文件內(nèi)容中,字符串(學(xué)號、姓名學(xué)號、姓名)兩邊的引號兩邊的引號是系統(tǒng)自動(dòng)加入的。字段之間通過逗號隔開是系統(tǒng)自動(dòng)加入的。字段之間通過逗號隔開第三章中文Windows9895使用基礎(chǔ) 2. Print語句語句 格式:格式:Print #文件號文件號,表達(dá)式表,表達(dá)式表 作用與作用與Write一樣。將一個(gè)或多個(gè)表達(dá)式的值寫一樣。將一個(gè)或多個(gè)表達(dá)式的值寫到與文件號相關(guān)的順序文件中。其輸出數(shù)據(jù)格式與到與文件號相關(guān)
17、的順序文件中。其輸出數(shù)據(jù)格式與Print方法在窗體上輸出格式相似。方法在窗體上輸出格式相似。 示例:示例: Print #1, num, name, score 對應(yīng)按區(qū)格式對應(yīng)按區(qū)格式 Print #1, num;name;score 對應(yīng)緊湊格式對應(yīng)緊湊格式第三章中文Windows9895使用基礎(chǔ) 先用先用Input方式打開文件,然后采用方式打開文件,然后采用Input或或Line Input語語句從文件中讀出數(shù)據(jù)。通常,句從文件中讀出數(shù)據(jù)。通常,Input用來讀出用來讀出Write寫入的記寫入的記錄內(nèi)容,而錄內(nèi)容,而Line Input用來讀出用來讀出Print寫入的記錄內(nèi)容寫入的記錄內(nèi)
18、容 1. Input語句語句 一般格式:一般格式:Input #文件號,變量名表文件號,變量名表 功能:從指定文件中讀出一個(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ù)顯示出來。每行顯示,現(xiàn)要求把這些數(shù)顯示出來。每行顯示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è)置對象屬性創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性 例例8.6 從文件從文件Cj2.txt中讀出中讀出5個(gè)學(xué)生的資料個(gè)學(xué)生的資料第三章中文Windows9895使用基礎(chǔ) (2)編寫程序代碼編寫程序代碼 功能要求:單擊功能要求:單擊“查詢查詢”按鈕時(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語句語句格式:格式:Line Input #文件號,字符型變量文件號,字符型變量功能:從打開的順序文件中讀出一個(gè)記錄,即一行信息功能:從打開的順序文件中讀出一個(gè)記錄,即一行信息 例例8.7 Print語句和語句和Line Input語句配合使用的示例語句配合使用的示例 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ù),#文件號文件號) 功能:從文件中讀取指定字符數(shù)的字符功能:從文件中讀取指定字符數(shù)的字符
25、示例:示例:A$ =Input(20, #1) 順序文件的缺點(diǎn)是不能快速地存取所需的數(shù)據(jù),也不容順序文件的缺點(diǎn)是不能快速地存取所需的數(shù)據(jù),也不容易進(jìn)行數(shù)據(jù)的插入、刪除和修改等工作,因此對于經(jīng)常要修易進(jìn)行數(shù)據(jù)的插入、刪除和修改等工作,因此對于經(jīng)常要修改數(shù)據(jù)或取出文件中個(gè)別數(shù)據(jù),均不適合使用,但對于數(shù)據(jù)改數(shù)據(jù)或取出文件中個(gè)別數(shù)據(jù),均不適合使用,但對于數(shù)據(jù)變化不大,每次使用時(shí)又需要從頭往后順序地進(jìn)行讀寫,它變化不大,每次使用時(shí)又需要從頭往后順序地進(jìn)行讀寫,它還是不失為一種好的文件結(jié)構(gòu)還是不失為一種好的文件結(jié)構(gòu)第三章中文Windows9895使用基礎(chǔ) 隨機(jī)文件中每一個(gè)記錄定長,并設(shè)置記錄號,記錄號從隨
26、機(jī)文件中每一個(gè)記錄定長,并設(shè)置記錄號,記錄號從1開始。開始。 存取記錄時(shí),只要說明所需記錄的編號,系統(tǒng)就以此算存取記錄時(shí),只要說明所需記錄的編號,系統(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ù)作為記錄號以該數(shù)作為記錄號8.3 8.3 隨機(jī)文件隨機(jī)文件第三章中文Windows9895使用基礎(chǔ) (1) (1) 通過通過Type.
27、End TypeType.End Type語句定義記錄類型,語句定義記錄類型,程序代碼如下:程序代碼如下: 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)利用某一過程利用某一過程( (本例采用事件過程本例采用事件過程Form_Load)Form_Load)來完成該隨機(jī)文件的存取操作,程序代碼如下:來完成該隨機(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; 號記錄號記錄:, nv.squre, nv.cube, nv.sqroot Next i Close #1End Sub第三章中文Windows9895使用基礎(chǔ) 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 第第2號記錄號記錄 4 8 1.414214 第第6號記錄號記錄 36 216 2.44949 第第10號記錄號記錄 100 1000 3.162278第三章中文Windows9895使用基礎(chǔ) 進(jìn)行隨機(jī)文件存取操作,大致包括以下一些內(nèi)容:進(jìn)行隨機(jī)文件存取操作,大致包括以下一些內(nèi)容: (1) 在打開文件進(jìn)行隨機(jī)訪問之前,使用在打開文件進(jìn)行隨機(jī)訪問之前,使用
30、TypeEnd Type語語句定義一個(gè)記錄類型句定義一個(gè)記錄類型(如如Numval),該類型包括多個(gè)數(shù)據(jù)項(xiàng),并,該類型包括多個(gè)數(shù)據(jù)項(xiàng),并與文件中記錄應(yīng)包括的域一致。與文件中記錄應(yīng)包括的域一致。 當(dāng)通過當(dāng)通過Dim定義一個(gè)變量定義一個(gè)變量(如如nv)為一個(gè)記錄類型為一個(gè)記錄類型Numval時(shí),時(shí),該變量也就包含該類型的多個(gè)數(shù)據(jù)項(xiàng),以后可通過該變量也就包含該類型的多個(gè)數(shù)據(jù)項(xiàng),以后可通過nv.squre、nv.cube、nv.sqroot進(jìn)行引用進(jìn)行引用 (2) 指定指定Random類型打開文件,記錄定長,打開文件后,就類型打開文件,記錄定長,打開文件后,就可以存或取任一個(gè)記錄可以存或取任一個(gè)記錄
31、(3)分別通過分別通過Get和和Put語句,并指定記錄號進(jìn)行讀一個(gè)記錄或語句,并指定記錄號進(jìn)行讀一個(gè)記錄或存一個(gè)記錄存一個(gè)記錄 一定要建立好記錄與記錄號之間的關(guān)系一定要建立好記錄與記錄號之間的關(guān)系第三章中文Windows9895使用基礎(chǔ) 1. 讀語句讀語句格式:格式:Get #文件號,記錄號,變量文件號,記錄號,變量功能:從一個(gè)隨機(jī)文件中讀出指定記錄到一個(gè)變量功能:從一個(gè)隨機(jī)文件中讀出指定記錄到一個(gè)變量 2. 寫語句寫語句 格式:格式:Put #文件號,記錄號,變量文件號,記錄號,變量功能:把變量的值寫入隨機(jī)文件的記錄中。功能:把變量的值寫入隨機(jī)文件的記錄中。 默認(rèn)情況下,記錄號編號為上一次使
32、用的記錄號加默認(rèn)情況下,記錄號編號為上一次使用的記錄號加18.3.2 存取操作存取操作第三章中文Windows9895使用基礎(chǔ) 建立一個(gè)有建立一個(gè)有5名職工工資信息的隨機(jī)文件,其中包括職名職工工資信息的隨機(jī)文件,其中包括職工的職工號工的職工號(從從001開始開始)、姓名及工資三種數(shù)據(jù)。采用職工號、姓名及工資三種數(shù)據(jù)。采用職工號為記錄號。設(shè)計(jì)步驟如下:為記錄號。設(shè)計(jì)步驟如下: (1) 在標(biāo)準(zhǔn)模塊在標(biāo)準(zhǔn)模塊Module1中用中用Type語句定義一個(gè)語句定義一個(gè)職工工資記錄類型職工工資記錄類型 Type Salary Name As String*8 定長字符串類型定長字符串類型 Salary As
33、 Long End Type 不必把職工號作為記錄的一個(gè)數(shù)據(jù)項(xiàng)存入文件不必把職工號作為記錄的一個(gè)數(shù)據(jù)項(xiàng)存入文件 (2)利用事件過程利用事件過程Form_Load來進(jìn)行文件處理來進(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$ + 編號編號) = InputBox(s$ + 姓名姓名) sal.salary = Val(InputBox(s$ + 工資工資) recno = Val(no) 記錄號記錄號 Put #1, recno, sal 存入記錄存入記錄 Next i Close #1 End End Sub 第三章中文Windows9895使用基礎(chǔ) (1)創(chuàng)建應(yīng)用程序的用戶界面創(chuàng)建應(yīng)用程序的用戶界面 (2)設(shè)置對象屬性設(shè)置對象屬性例8.10 對職工工資信息進(jìn)行查詢、增、改、除等操作對職工工資信息進(jìn)行查詢、增、改、除等操作第
35、三章中文Windows9895使用基礎(chǔ) (3)編寫程序代碼編寫程序代碼 在標(biāo)準(zhǔn)模塊在標(biāo)準(zhǔn)模塊Module1中定義記錄類型和建立一個(gè)通用過程中定義記錄類型和建立一個(gè)通用過程 Type salary name As String * 8 salary As Long End Type Public sal As salary, recno As Integer recno表示記錄號表示記錄號 檢查編號的通用過程檢查編號的通用過程 Function Cheno(no As String) As Boolean recno = Val(no) If recno 999 Then MsgBox 輸入的職
36、工號超出范圍輸入的職工號超出范圍, 0, 檢查編號檢查編號 Cheno = True Else Cheno = False End If End Function第三章中文Windows9895使用基礎(chǔ) 利用事件過程利用事件過程Form_Load()來打開文件和顯示第來打開文件和顯示第一個(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事件過程事件過程 Private Sub Command1_Click() If Cheno(Text1.Text) Then Exit Sub If recno LOF(1) / Len(sal) Then MsgBox 無此記錄無此記錄 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事件過程事件過程 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事件過程事件過程 Private Sub Command3_Click() If Cheno(Text1.Text) Then Exit Sub If recno LOF(1) / Len(sal) Then MsgBox 無此記錄無此記錄 Exit Sub End If = 記錄內(nèi)容清空記錄內(nèi)容清空 sal.salary = 0 Text2.Text = 文本框清空文本框清空 Text3.Text = Put #1, recno, sal Text1.SetFocus End Sub第三章中文
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Mumeose-K-生命科學(xué)試劑-MCE-2774
- 5-Fluoro-THJ-生命科學(xué)試劑-MCE-6389
- 2025年度環(huán)保型空調(diào)拆卸作業(yè)安全協(xié)議書
- 2025年度文化創(chuàng)意產(chǎn)業(yè)居間代理協(xié)議
- 二零二五年度父母出資購房子女房產(chǎn)份額分配協(xié)議
- 2025年度無房產(chǎn)證房屋買賣風(fēng)險(xiǎn)評估合同
- 二零二五年度砍樹承包合同及林業(yè)資源管理實(shí)施協(xié)議
- 二零二五年度企業(yè)食堂檔口租賃合同與員工餐飲補(bǔ)貼協(xié)議
- 高標(biāo)準(zhǔn)實(shí)驗(yàn)環(huán)境下的安全防護(hù)措施探討
- 臨時(shí)用電安全合同協(xié)議
- 設(shè)計(jì)單位-質(zhì)量管理體系
- 2024版《供電營業(yè)規(guī)則》學(xué)習(xí)考試題庫500題(含答案)
- 福建省醫(yī)院大全
- GB/T 16659-2024煤中汞的測定方法
- 閃蒸罐計(jì)算完整版本
- (高清版)DZT 0073-2016 電阻率剖面法技術(shù)規(guī)程
- 完整2024年開工第一課課件
- 貨運(yùn)車輛駕駛員安全培訓(xùn)內(nèi)容資料完整
- 高一學(xué)期述職報(bào)告
- 風(fēng)神汽車4S店安全生產(chǎn)培訓(xùn)課件
- ICU患者的體位轉(zhuǎn)換與床旁運(yùn)動(dòng)訓(xùn)練
評論
0/150
提交評論