




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第11章章數(shù)據(jù)文件數(shù)據(jù)文件 本章學(xué)習(xí)目標(biāo)n了解文件操作的一般步驟n掌握常用的文件操作語(yǔ)句和函數(shù)。n掌握順序文件的特點(diǎn)與讀、寫(xiě)操作。n了解隨機(jī)文件、二進(jìn)制文件的特點(diǎn)與讀、寫(xiě)操作。11.1 文件概述n文件是指存儲(chǔ)在外部存儲(chǔ)介質(zhì)上的數(shù)據(jù)和信息的集合。存儲(chǔ)在外部存儲(chǔ)介質(zhì)上的信息如程序、數(shù)據(jù)、圖像、圖形、聲音等都是以文件的形式存儲(chǔ)的,信息一旦存入外部存儲(chǔ)介質(zhì)上,就會(huì)形成磁盤(pán)文件,n一個(gè)文件必須有一個(gè)區(qū)別于其他文件的文件名。為了更好的標(biāo)識(shí)文件,通常在文件名的前邊帶上路徑(缺省為當(dāng)前目錄)。11.1.1數(shù)據(jù)文件結(jié)構(gòu)n為了迅速有效地存取數(shù)據(jù),文件必須以某種特定格式來(lái)存儲(chǔ)數(shù)據(jù),這種格式稱為文件的結(jié)構(gòu)。n在Vi
2、sual Basic中,一個(gè)數(shù)據(jù)文件是由若干條記錄組成,每條記錄由若干個(gè)字段組成,每個(gè)字段由若干個(gè)字符組成。數(shù)據(jù)文件中的幾個(gè)概念n字符(character):字符是構(gòu)成文件的最基本單位。n字段(field):字段也叫域,由若干個(gè)字符組成,用來(lái)表示一個(gè)數(shù)據(jù)項(xiàng)。n記錄(record):記錄由若干個(gè)相關(guān)的字段組成。n文件(file):文件由若干條記錄組成。11.1.2 數(shù)據(jù)文件分類 在VB中,處理的文件一般分為三類,即順序文件、隨機(jī)文件和二進(jìn)制文件。n順序文件是指只能按文件中保存的數(shù)據(jù)順序讀出或?qū)懭氲奈募?。n隨機(jī)文件保存的是記錄類型數(shù)據(jù)。在隨機(jī)文件中,每個(gè)記錄長(zhǎng)度是固定的,記錄中每個(gè)數(shù)據(jù)項(xiàng)的長(zhǎng)度也是
3、固定的,每條記錄都有記錄號(hào)。寫(xiě)數(shù)據(jù)時(shí),只需指定記錄號(hào),就可把數(shù)據(jù)直接存入指定位置;讀數(shù)據(jù)時(shí),只需給出記錄號(hào),就可直接讀取該記錄。n二進(jìn)制文件以字節(jié)數(shù)來(lái)定位數(shù)據(jù),允許應(yīng)用程序按所需的任何方式組織和訪問(wèn)數(shù)據(jù),也允許對(duì)文件中各字節(jié)數(shù)據(jù)進(jìn)行存取訪問(wèn)和改變。11.1.3 文件操作的一般步驟 在VB中,對(duì)于順序文件、隨機(jī)文件、二進(jìn)制文件的基本操作步驟如下:n打開(kāi)(或創(chuàng)建)文件n讀/寫(xiě)文件n關(guān)閉文件11.2常用的文件操作語(yǔ)句和函數(shù) 文件的主要操作是讀和寫(xiě),Visual Basic提供了很多與文件讀寫(xiě)操作相關(guān)的命令語(yǔ)句和函數(shù),這里先介紹與文件讀和寫(xiě)有關(guān)的通用的語(yǔ)句和函數(shù),具體的讀、寫(xiě)操作在后面介紹。11.2.
4、1文件指針 n文件打開(kāi)后,會(huì)自動(dòng)生成一個(gè)隱含的文件指針,文件的讀或?qū)懢蛷倪@個(gè)指針?biāo)肝恢瞄_(kāi)始的。n用Append方式打開(kāi)文件后,文件指針指向文件的末尾,而用其他方式打開(kāi)文件,文件指針指向文件的開(kāi)頭。n完成一次操作后,文件指針自動(dòng)移動(dòng)到下一次讀寫(xiě)操作的起始位置,移動(dòng)量的大小由Open語(yǔ)句和讀寫(xiě)語(yǔ)句中的參數(shù)共同決定。 11.2.1文件指針 nSeek語(yǔ)句 nSeek #文件號(hào),位置n說(shuō)明:Seek語(yǔ)句用來(lái)設(shè)置文件中下一個(gè)讀或?qū)懙奈恢谩!拔募?hào)”如前所述是是一個(gè)整型表達(dá)式,“位置”是一個(gè)數(shù)值表達(dá)式(其值為長(zhǎng)整型),用來(lái)指定下一個(gè)要讀寫(xiě)的位置。 nSeek函數(shù) n格式:Seek(文件號(hào))n該函數(shù)返回文
5、件指針的當(dāng)前位置。由Seek函數(shù)返回的值為長(zhǎng)整型。11.2.2常用的文件操作語(yǔ)句常用的文件操作語(yǔ)句1FileCopy 語(yǔ)句n格式:FileCopy源文件名,目標(biāo)文件名n功能:復(fù)制一個(gè)文件。n說(shuō)明:FileCopy語(yǔ)句不能復(fù)制一個(gè)巳打開(kāi)的文件,否則,將會(huì)產(chǎn)生一個(gè)錯(cuò)誤。2Kill 語(yǔ)句n格式:Kill 文件名n功能:從磁盤(pán)中刪除文件。n說(shuō)明:因?yàn)樵谑褂肒ill語(yǔ)句刪除文件時(shí)不會(huì)出現(xiàn)任何提示,所以應(yīng)在程序中加上適當(dāng)?shù)拇a以提示用戶確認(rèn)后再刪除。11.2.2常用的文件操作語(yǔ)句常用的文件操作語(yǔ)句3Name 語(yǔ)句n格式:Name 舊文件名As新文件名n功能:更新命名一個(gè)文件、目錄成文件災(zāi)。n說(shuō)明:Name
6、語(yǔ)句重新命名文件并將其移動(dòng)到一個(gè)不同的目錄或文件夾中。4ChDrive 語(yǔ)句n格式:ChDrive 驅(qū)動(dòng)器名n功能:改變當(dāng)前的驅(qū)動(dòng)器。n說(shuō)明:如果使用零長(zhǎng)度的字符串 (),則當(dāng)前的驅(qū)動(dòng)器將不會(huì)改變。如果 drive 參數(shù)中有多個(gè)字符,則 ChDrive 只會(huì)使用首字母。11.2.2常用的文件操作語(yǔ)句常用的文件操作語(yǔ)句5ChDir 語(yǔ)句n格式:ChDir路徑n功能:改變當(dāng)前的目錄或文件夾。n說(shuō)明:ChDir 語(yǔ)句改變?nèi)笔∧夸浳恢?,但不?huì)改變?nèi)笔◎?qū)動(dòng)器位置。11.2.3對(duì)文件對(duì)文件/記錄操作常用函數(shù)記錄操作常用函數(shù)1FreeFile函數(shù)n用FreeFile函數(shù)可以得到一個(gè)在程序中沒(méi)行使用的文件號(hào),
7、當(dāng)程序中打開(kāi)的文件較多時(shí),利用這個(gè)函數(shù),可以把未使用的文件號(hào)賦給一個(gè)變量,用這個(gè)變量作為文件號(hào),不必知道具體的文件號(hào)足多少。2Loc函數(shù)n格式:Loc(文件號(hào))nLoc函數(shù)返回由“文件號(hào)”指定的文件的當(dāng)前讀寫(xiě)位置。格式中的“文件號(hào)”是在Open語(yǔ)句中使用的文件號(hào)。n對(duì)于隨機(jī)文件,Loc函數(shù)返回隨機(jī)文件上次讀出或?qū)懭氲挠涗浀挠涗浱?hào);對(duì)于二進(jìn)制文件,Loc函數(shù)返回上次讀出或?qū)懭氲淖止?jié)的位置;在順序文件中,Loc函數(shù)返回的是文件中當(dāng)前字節(jié)位置除以 128 的值,順序文件而言不需要使用 Loc 的返回值。11.2.3對(duì)文件對(duì)文件/記錄操作常用函數(shù)記錄操作常用函數(shù)3LOF函數(shù)n格式:LOF (文件號(hào))n
8、LOF函數(shù)返回給文件分配的字節(jié)數(shù)(即文件的長(zhǎng)度)。4CurDir 函數(shù)n功能:返回當(dāng)前目錄。n格式:CurDir(文件名)n說(shuō)明:返回一個(gè) Variant (String),用來(lái)代表當(dāng)前的路徑。11.2.3對(duì)文件對(duì)文件/記錄操作常用函數(shù)記錄操作常用函數(shù)5GetAttr 函數(shù)n功能:獲得文件屬性。n格式:GetAttr (文件名) n說(shuō)明:返回一個(gè) Integer,此為一個(gè)文件、目錄、或文件夾的屬性。6FileDateTime 函數(shù)n功能:獲得文件的日期和時(shí)間。n格式:FileDateTime (文件名) n說(shuō)明:返回一個(gè) Variant (Date),此為一個(gè)文件被創(chuàng)建或最后修改后的日期和時(shí)間
9、。11.2.3對(duì)文件對(duì)文件/記錄操作常用函數(shù)記錄操作常用函數(shù)7FileLen 函數(shù)n功能:獲得文件的長(zhǎng)度,單位是字節(jié)。n格式:FileLen (文件名) n說(shuō)明:返回一個(gè) Long,代表一個(gè)文件的長(zhǎng)度,單位是字節(jié)。8Shell 函數(shù)n功能:運(yùn)行應(yīng)用程序。n格式:Shell (文件名,窗口類型) n說(shuō)明:執(zhí)行一個(gè)可執(zhí)行文件,返回一個(gè) Variant (Double),如果成功的話,代表這個(gè)程序的任務(wù) ID,若不成功,則會(huì)返回 0。11.2.3對(duì)文件對(duì)文件/記錄操作常用函數(shù)記錄操作常用函數(shù)9. EOF函數(shù))n功能:測(cè)試文件指針的位置。n格式:EOF(文件號(hào))。n說(shuō)明:當(dāng)記錄指針指向文件尾時(shí),該函數(shù)
10、返回值為T(mén)rue,否則,返回值不False。11.3 順序文件順序文件n程序執(zhí)行期間,數(shù)據(jù)只能從文件的首部順序?qū)懭牖蝽樞蜃x出的文件,稱為順序文件。n通常它是一個(gè)文本文件,數(shù)字和字符均以ASCII碼形式存儲(chǔ)。順序文件的結(jié)構(gòu)比較較簡(jiǎn)單,文件中的記錄數(shù)據(jù)一個(gè)接一個(gè)按順序存放。系統(tǒng)只能知道文件中的第一條記錄的存放位置,而不知道其他記錄的存放位置。11.3.1 順序文件的打開(kāi)順序文件的打開(kāi)n在對(duì)文件進(jìn)行讀寫(xiě)操作之前,必須打開(kāi)文件,同時(shí)要通知操作系統(tǒng)對(duì)文件進(jìn)行讀操作還是寫(xiě)操作,將數(shù)據(jù)存到什么地方。n格式:Open For As # Len = 緩沖區(qū)大小n說(shuō)明:n訪問(wèn)模式:指定文件的打開(kāi)方式,打開(kāi)文件后,
11、只能按指定的方式進(jìn)行一種操作。打開(kāi)一個(gè)順序文件有三種方式可選:nInput:打開(kāi)文件后,從文件中讀取數(shù)據(jù)nOutput:打開(kāi)文件后,向文件中寫(xiě)入數(shù)據(jù),即重寫(xiě)一個(gè)順序文件nAppend:打開(kāi)文件后,向文件末尾添加數(shù)據(jù)11.3.1 順序文件的打開(kāi)順序文件的打開(kāi)n若指定Input方式,則當(dāng)指定文件不存在時(shí)產(chǎn)生一個(gè)錯(cuò)誤;若指定Output或Append方式,則當(dāng)文件不存在時(shí)建立該文件,文件已存在時(shí)寫(xiě)入的數(shù)據(jù)。n對(duì)同一文件用一種方式打開(kāi)后,在關(guān)閉之前,不能再以另一種方式打開(kāi)。n文件號(hào):指在打開(kāi)文件時(shí)所指定的文件句柄,取值介于l511之間的某一個(gè)整數(shù)。在文件的讀寫(xiě)操作中,以文件號(hào)代替文件名。nLen參數(shù):
12、當(dāng)在文件與程序之間拷貝數(shù)據(jù)時(shí),選項(xiàng)Len參數(shù)指定緩沖區(qū)的字符數(shù),其范圍為1 - 32767,缺省值為512字節(jié)。11.3.2 順序文件的關(guān)閉順序文件的關(guān)閉對(duì)文件操作完成以后,必須關(guān)閉文件,關(guān)閉文件用Close語(yǔ)句。n格式:Close #文件號(hào)1 , #文件號(hào)2 n說(shuō)明:該語(yǔ)句的功能是關(guān)閉指定的文件,釋放緩沖區(qū);若不指定文件號(hào),則關(guān)閉所有打開(kāi)的文件。n程序運(yùn)行結(jié)束時(shí),會(huì)自動(dòng)關(guān)閉所有打開(kāi)的文件,但對(duì)打開(kāi)的文件完成操作后及時(shí)關(guān)閉該文件是個(gè)好習(xí)慣,不僅節(jié)約內(nèi)存,也避免意外情況丟失數(shù)據(jù)。11.3.3 順序文件的寫(xiě)操作順序文件的寫(xiě)操作寫(xiě)文件的輸出命令有兩種:Print # 語(yǔ)句和Write # 語(yǔ)句。1.
13、 Print # 語(yǔ)句n格式:Print # 文件號(hào),表達(dá)式表n說(shuō)明:(1)Print #語(yǔ)句用來(lái)將一個(gè)或多個(gè)格式化的數(shù)據(jù)寫(xiě)入順序文件,(2)文件號(hào)是用Open語(yǔ)句打開(kāi)文件時(shí)指定的,被打開(kāi)的文件必須以O(shè)utput或Append方式打開(kāi)。(3)表達(dá)式表是要輸出的表達(dá)式或表達(dá)式列表,輸出格式同Print方法。(4)省略表達(dá)式表,則輸出一個(gè)空行。(5)在實(shí)際編程中,經(jīng)常將文本框中的文本以文件的形式存儲(chǔ)到磁盤(pán)上。這時(shí)可用Print #語(yǔ)句來(lái)實(shí)現(xiàn)。11.3.3 順序文件的寫(xiě)操作順序文件的寫(xiě)操作2. Write # 語(yǔ)句n格式:Write # 文件號(hào),表達(dá)式表n說(shuō)明:Write # 語(yǔ)句的用法和Print
14、 # 語(yǔ)句相似,不同的是:n輸出的數(shù)據(jù)采用緊湊格式存放,數(shù)據(jù)項(xiàng)之間自動(dòng)用逗號(hào)分開(kāi)。n輸出的字符串自動(dòng)用雙引號(hào)括起來(lái)。n記錄尾自動(dòng)加回車(chē)換行符。11.3.4 順序文件的讀操作順序文件的讀操作 對(duì)于用Input方式打開(kāi)的順序文件,可以使用Line Input#語(yǔ)句、Input函數(shù)或Input #語(yǔ)句從文件中讀取數(shù)據(jù)。1.Line Input # 語(yǔ)句n格式:Line Input #文件號(hào),字符串變量n說(shuō)明:(1) Line Input # 語(yǔ)句從已打開(kāi)的順序文件中讀出一行并將它分配給一個(gè)字符串變量,遇到回車(chē)符或換行符結(jié)束,但變量中不包括回車(chē)符或換行符。(2)對(duì)于沒(méi)有劃分字段的文本文件,一行指從文件
15、開(kāi)頭或回車(chē)換行符到下一個(gè)回車(chē)換行符之間的部分;對(duì)于劃分字段的表,一行即一個(gè)記錄,包括分隔符和定界符,如空格、逗號(hào)、雙引號(hào)等均作為有效字符讀到變量中。11.3.4 順序文件的讀操作順序文件的讀操作 2.Input函數(shù):從一個(gè)打開(kāi)的順序文件中返回指定個(gè)數(shù)的字符n格式:Input(讀取的字符個(gè)數(shù),#文件號(hào))n說(shuō)明:Input函數(shù)從一個(gè)打開(kāi)的順序文件中返回指定個(gè)數(shù)的字符。該函數(shù)可讀取文件中的任何字符,包括回車(chē)換行符。調(diào)用該函數(shù)后,移動(dòng)文件指針到下一個(gè)讀取位置。11.3.4 順序文件的讀操作順序文件的讀操作 3Input # 語(yǔ)句n格式:Input #文件號(hào), 變量表n說(shuō)明:(1)Input # 語(yǔ)句用
16、于從打開(kāi)的順序文件中讀取數(shù)據(jù)賦值給指定的變量。該語(yǔ)句讀取文件時(shí),以字段為單位,讀取后依次賦值給變量表中的變量。變量表中有多個(gè)變量時(shí)以逗號(hào)分隔。(2)使用該語(yǔ)句時(shí),變量表中的變量個(gè)數(shù)應(yīng)和文件中的每條記錄劃分的字段數(shù)相同,類型應(yīng)匹配,即一次應(yīng)讀出一整條紀(jì)錄。讀出的數(shù)據(jù)不包括字符串字段的定界符和字段之間的分隔符。(3)為了正確地從打開(kāi)的文件讀取數(shù)據(jù)到變量中,文件中的數(shù)據(jù)應(yīng)該是用Write # 語(yǔ)句寫(xiě)入(而不是用Print #語(yǔ)句),這樣可保證每個(gè)字段被正確分界。11.4 隨機(jī)文件隨機(jī)文件n隨機(jī)文件又稱為記錄文件,是由固定長(zhǎng)度的記錄順序排列而成,每個(gè)記錄可由多個(gè)數(shù)據(jù)項(xiàng)組成,每個(gè)數(shù)據(jù)項(xiàng)稱為一個(gè)字段。每個(gè)
17、記錄的數(shù)據(jù)項(xiàng)數(shù)相同,對(duì)應(yīng)的數(shù)據(jù)項(xiàng)數(shù)據(jù)類型相同。記錄是讀寫(xiě)隨機(jī)文件的最小單位,可將文件指針定位在任意一條記錄上進(jìn)行讀或?qū)懕阌谖募牟樵兒托薷?。n隨機(jī)文件的操作分為四個(gè)步驟:定義記錄類型、打開(kāi)文件、進(jìn)行讀寫(xiě)操作和關(guān)閉文件。11.4.1記錄類型記錄類型n隨機(jī)文件中的記錄都具有相同的結(jié)構(gòu)和數(shù)據(jù)類型,n在程序中使用記錄類型數(shù)據(jù)時(shí),應(yīng)先定義一個(gè)記錄類型,再聲明該類型的變量,這樣就為這個(gè)變量申請(qǐng)了內(nèi)存空間用于存放隨機(jī)文件中的記錄。n聲明記錄結(jié)構(gòu)和數(shù)據(jù)類型通常用自定義數(shù)據(jù)類型。n“記錄”是由若干個(gè)數(shù)據(jù)項(xiàng)組成的一種構(gòu)造數(shù)據(jù)類型,Visual Basic中通過(guò)使用TypeEnd Type語(yǔ)句來(lái)自定義。11.4.1
18、記錄類型記錄類型1記錄類型的定義n格式:Type As As End Type11.4.1記錄類型記錄類型n說(shuō)明:(1)記錄類型名是用戶自定義類型的名稱,數(shù)據(jù)項(xiàng)名是用戶自定義類型中元素的名稱,記錄類型名和數(shù)據(jù)項(xiàng)名的命名規(guī)則與變量的命名規(guī)則相同。類型可以是任何基本數(shù)據(jù)類型,也可以是已經(jīng)定義的另一個(gè)用戶自定義類型。(2)因?yàn)殡S機(jī)訪問(wèn)文件中的所有記錄都必須有相同的長(zhǎng)度,所以用戶定義類型中的String類型的字段要使用固定的長(zhǎng)度,(3)如果實(shí)際字符串包含的字符數(shù)比它寫(xiě)入的字符串元素的固定長(zhǎng)度少,則Visual Basic會(huì)用空白(字符代碼32)來(lái)填充記錄后面的空間。如果字符中的長(zhǎng)度超過(guò)了字段,則會(huì)被截
19、斷。(4) TypeEnd Type語(yǔ)句通常放在標(biāo)準(zhǔn)模塊中,如果放在窗體模塊中,則需在Type前加關(guān)鍵字Private。11.4.1記錄類型記錄類型2記錄類型變量的使用n定義了一個(gè)記錄類型后,可以定義一個(gè)或多個(gè)該類型的變量(或數(shù)組),程序中實(shí)際使用的是變量。對(duì)記錄類型變量的一般訪問(wèn)形式為:n(i).n其中,若使用(i),表示訪問(wèn)該記錄類型數(shù)組的第i個(gè)元素。11.4.2隨機(jī)文件的打開(kāi)與關(guān)閉隨機(jī)文件的打開(kāi)與關(guān)閉 在對(duì)一個(gè)隨機(jī)文件操作之前,也必須用Open語(yǔ)句打開(kāi)文件,隨機(jī)文件的打開(kāi)方式必須是Random方式,同時(shí)要指明記錄的長(zhǎng)度。與順序文件不同的是,隨機(jī)文件打開(kāi)后,可同時(shí)進(jìn)行寫(xiě)入與讀出操作。1打開(kāi)
20、隨機(jī)文件n格式:Open For Random As # Len=記錄長(zhǎng)度11.4.2隨機(jī)文件的打開(kāi)與關(guān)閉隨機(jī)文件的打開(kāi)與關(guān)閉n說(shuō)明:(1)指定的文件名不存在時(shí)建立該文件,存在時(shí)打開(kāi)文件。(2)打開(kāi)方式指定為Random或缺省均為打開(kāi)隨機(jī)文件。(3)對(duì)隨機(jī)文件,Len用于指定記錄長(zhǎng)度,以便根據(jù)指定的長(zhǎng)度計(jì)算指定記錄的位置。缺省值為128個(gè)字節(jié)。當(dāng)指定長(zhǎng)度小于記錄實(shí)際長(zhǎng)度(即聲明的記錄結(jié)構(gòu)長(zhǎng)度)時(shí)將產(chǎn)生錯(cuò)誤;大于實(shí)際長(zhǎng)度時(shí),可以寫(xiě)入,但浪費(fèi)空間。為了確保指定長(zhǎng)度與實(shí)際長(zhǎng)度相等,可用Len函數(shù)測(cè)試記錄變量的長(zhǎng)度。11.4.2隨機(jī)文件的打開(kāi)與關(guān)閉隨機(jī)文件的打開(kāi)與關(guān)閉2關(guān)閉隨機(jī)文件關(guān)閉隨機(jī)文件也使用C
21、lose語(yǔ)句,語(yǔ)法和順序文件相同。11.4.3隨機(jī)文件的寫(xiě)操作隨機(jī)文件的寫(xiě)操作Visual Basic采用Put語(yǔ)句向隨機(jī)文件中寫(xiě)入數(shù)據(jù)。n格式:Put #,記錄號(hào),n說(shuō)明:(1)指定“記錄號(hào)”參數(shù)時(shí),寫(xiě)入的記錄用指定記錄號(hào)標(biāo)識(shí)。若已有指定記錄號(hào)的記錄,則此記錄被覆蓋;若不指定記錄號(hào),則默認(rèn)為上一次使用Put或Get語(yǔ)句操作的記錄的下一個(gè)記錄,若還沒(méi)執(zhí)行過(guò)Put或Get語(yǔ)句,則默認(rèn)為第一條記錄。(2)“記錄變量”應(yīng)與記錄結(jié)構(gòu)的類型一致。(3)若不知已有多少個(gè)記錄,可用Lof函數(shù)(它返回打開(kāi)文件的長(zhǎng)度)除以記錄長(zhǎng)度計(jì)算,計(jì)算公式為:Lof(文件號(hào))/記錄長(zhǎng)度。如果要向文件末尾添加記錄,則添加的記
22、錄的記錄號(hào)為:Lof(文件號(hào))/記錄長(zhǎng)度+111.4.4隨機(jī)文件的讀操作隨機(jī)文件的讀操作Visual Basic通常用Get將Put寫(xiě)入的文件數(shù)據(jù)讀出來(lái)。n格式:Get #,記錄號(hào),n說(shuō)明:(1)此語(yǔ)句是將一個(gè)已打開(kāi)的磁盤(pán)文件讀入一個(gè)變量之中。(2)通常用Put將Get讀出的數(shù)據(jù)寫(xiě)入一個(gè)文件。(3)缺省“記錄號(hào)”時(shí),讀取當(dāng)前記錄。(4)讀取連續(xù)記錄時(shí),可將記錄變量聲明為記錄數(shù)組,從而使用循環(huán),以提高代碼效率。11.4.5隨機(jī)文件中記錄的添加與刪除隨機(jī)文件中記錄的添加與刪除 1增加記錄 在隨機(jī)文件中增加記錄,實(shí)際上是在文件尾附加條新記錄,方法是首先確定最后一條記錄的記錄號(hào)(即記錄總數(shù)),然后把要
23、增加的記錄寫(xiě)到它的后面(記錄號(hào)增加1)。隨機(jī)文件中的記錄數(shù)可以用以下公式進(jìn)行計(jì)算:記錄數(shù)Lof(文件號(hào))/Len(記錄型變量)11.4.5隨機(jī)文件中記錄的添加與刪除隨機(jī)文件中記錄的添加與刪除2刪除記錄 要?jiǎng)h除條記錄的所有字段可以通過(guò)刪除該記錄實(shí)現(xiàn),但該記錄仍在文件中存在。通常文件中不能有空記錄,因?yàn)樗鼈儠?huì)浪費(fèi)空間且臺(tái)干擾順序操作。最好把余下的記錄拷貝到一個(gè)新文件,然后刪除舊文件。 消除隨機(jī)訪問(wèn)中刪除的記錄可以采用如下步驟: (1)創(chuàng)建一個(gè)新文件。 (2)把有用的記錄從原文件復(fù)制到新文件中。 (3)關(guān)閉原文件并用K111語(yǔ)句刪除它。 (4)使用Name語(yǔ)句把新文件名改為原文件名。11.5二進(jìn)制文件二進(jìn)制文件 二進(jìn)制文件保存的數(shù)據(jù)是無(wú)格式的字節(jié)序列,文件中沒(méi)有記錄或字段這樣的結(jié)構(gòu)。二進(jìn)制訪問(wèn)能提供對(duì)文件的完全控制,因?yàn)槲募械淖止?jié)可以代表任何東西。只有了解每個(gè)字節(jié)代表的含義,才可能讀懂整個(gè)文件,否則即使使用文本編輯器打開(kāi)了文件,也可能不知所云。因此對(duì)于不想直接公開(kāi)的內(nèi)容,程序員通常會(huì)以二進(jìn)制文件來(lái)保存。創(chuàng)建長(zhǎng)度可變的記錄可節(jié)省磁盤(pán)空間,所以當(dāng)要保持文件的尺寸盡量小時(shí),應(yīng)使用二進(jìn)制文件。11.5.1二進(jìn)制文件的打開(kāi)與關(guān)閉二進(jì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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院年度護(hù)理服務(wù)改進(jìn)計(jì)劃
- 高空作業(yè)后安全檢查措施
- 部編版二年級(jí)下冊(cè)語(yǔ)文第四單元寫(xiě)話思維導(dǎo)圖
- 女性減脂健身訓(xùn)練計(jì)劃
- DB62T 4111-2020 城市軌道交通雷電防護(hù)裝置檢測(cè)技術(shù)規(guī)范
- 家電行業(yè)交貨進(jìn)度監(jiān)控措施
- 供電所2025年安全生產(chǎn)措施制定與實(shí)施計(jì)劃
- 消化道出血專科護(hù)理
- 2025年流變儀項(xiàng)目投資分析及可行性報(bào)告
- 遠(yuǎn)程醫(yī)療中多重耐藥菌感染監(jiān)測(cè)措施
- Unit 5 Animals Lesson 2課件 人教精通版三年級(jí)英語(yǔ)下冊(cè)
- DB3309T 106-2024人力資源和社會(huì)保障數(shù)據(jù)分類分級(jí)規(guī)范
- 租賃法律知識(shí)講座課件
- 初級(jí)美甲筆試題及答案
- 2025屆吉林省長(zhǎng)春市高三質(zhì)量監(jiān)測(cè)(三)政治試題及答案
- GB/T 24894-2025動(dòng)植物油脂甘三酯分子2-位脂肪酸組分的測(cè)定
- 2024年江蘇常州中考滿分作文《那么舊那樣新》8
- 省課題研究報(bào)告格式范文
- 《夏季養(yǎng)生保健常識(shí)》課件
- 2025年傳統(tǒng)建筑行業(yè)的智能門(mén)窗技術(shù)
- 2024年湖北高中學(xué)業(yè)水平合格性考試歷史試卷真題(含答案詳解)
評(píng)論
0/150
提交評(píng)論