




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、文件操作文件操作 不存儲程序的計(jì)算機(jī)還不如一個強(qiáng)有力的不存儲程序的計(jì)算機(jī)還不如一個強(qiáng)有力的計(jì)算器,最早購買不帶磁盤驅(qū)動器的用戶計(jì)算器,最早購買不帶磁盤驅(qū)動器的用戶很快就明白了這一點(diǎn)很快就明白了這一點(diǎn)當(dāng)他們關(guān)掉計(jì)算當(dāng)他們關(guān)掉計(jì)算機(jī)的電源時,其工作成果也很就隨之消失機(jī)的電源時,其工作成果也很就隨之消失了。因而,當(dāng)你的計(jì)算機(jī)具備了一個軟盤了。因而,當(dāng)你的計(jì)算機(jī)具備了一個軟盤驅(qū)動器或者還有一個硬盤時,學(xué)習(xí)使用磁驅(qū)動器或者還有一個硬盤時,學(xué)習(xí)使用磁盤文件對編寫有用的程序來說就是很重要盤文件對編寫有用的程序來說就是很重要的了。下面就來介紹的了。下面就來介紹Pascal文件的有關(guān)知文件的有關(guān)知識。識。 文件
2、的概念文件的概念 文件是指由一系列相同類型數(shù)據(jù)組成的一個數(shù)據(jù)文件是指由一系列相同類型數(shù)據(jù)組成的一個數(shù)據(jù)序列,是一種由用戶定義的構(gòu)造型的數(shù)據(jù)類型。序列,是一種由用戶定義的構(gòu)造型的數(shù)據(jù)類型。作為系統(tǒng)提供的一種手段,是計(jì)算機(jī)與各類設(shè)備作為系統(tǒng)提供的一種手段,是計(jì)算機(jī)與各類設(shè)備進(jìn)行通訊的媒介,從而用以實(shí)現(xiàn)信息在程序內(nèi)外進(jìn)行通訊的媒介,從而用以實(shí)現(xiàn)信息在程序內(nèi)外的交換。對于文件我們實(shí)際上早已在使用,前面的交換。對于文件我們實(shí)際上早已在使用,前面出現(xiàn)的出現(xiàn)的Pascal程序中的輸入、輸出就是應(yīng)用文件程序中的輸入、輸出就是應(yīng)用文件的方法來實(shí)現(xiàn)的,這些文件的名字是的方法來實(shí)現(xiàn)的,這些文件的名字是Pascal的
3、標(biāo)的標(biāo)準(zhǔn)文件準(zhǔn)文件“INPUT”和和“OUTPUT”,它們分別對應(yīng),它們分別對應(yīng)于標(biāo)準(zhǔn)輸入設(shè)備和標(biāo)準(zhǔn)輸出設(shè)備,在于標(biāo)準(zhǔn)輸入設(shè)備和標(biāo)準(zhǔn)輸出設(shè)備,在Free Pascal中可省略不寫。中可省略不寫。文件的分類文件的分類 在在Pascal的數(shù)據(jù)文件中,按文件結(jié)構(gòu)形式劃的數(shù)據(jù)文件中,按文件結(jié)構(gòu)形式劃分,以分,以ASCII代碼形式(字符形式)存放的稱代碼形式(字符形式)存放的稱為為TEXT類型文件,也稱為文本文件,這是我類型文件,也稱為文本文件,這是我們經(jīng)常要用到的文件類型。還有一種以二進(jìn)們經(jīng)常要用到的文件類型。還有一種以二進(jìn)制代碼形式存放的文件,稱為制代碼形式存放的文件,稱為File類型文件,類型文件
4、,它又稱為類型文件。我們平時用到的是第一它又稱為類型文件。我們平時用到的是第一種文件類型:文本文件。種文件類型:文本文件。文本文件特征 (1)當(dāng)程序開始把數(shù)據(jù)寫(輸出)到文件中去時,)當(dāng)程序開始把數(shù)據(jù)寫(輸出)到文件中去時,總是從文件的起始位置開始。也就是不能從文件的中總是從文件的起始位置開始。也就是不能從文件的中間位置開始存放數(shù)據(jù)。間位置開始存放數(shù)據(jù)。 (2)輸出的數(shù)據(jù)是一個接一個地存放在文件中的。)輸出的數(shù)據(jù)是一個接一個地存放在文件中的。 (3)當(dāng)程序從文件中讀(輸入)數(shù)據(jù)到內(nèi)存中時,)當(dāng)程序從文件中讀(輸入)數(shù)據(jù)到內(nèi)存中時,總是從文件的起始位置開始。也就是不可能從文件的總是從文件的起始位
5、置開始。也就是不可能從文件的中間的某個位置開始讀入數(shù)據(jù)。中間的某個位置開始讀入數(shù)據(jù)。 (4)讀數(shù)據(jù)時,必須按存入文件時的順序一個接一)讀數(shù)據(jù)時,必須按存入文件時的順序一個接一個的讀入內(nèi)存中去。個的讀入內(nèi)存中去。 (5)對同一個文件的讀寫操作不能交叉進(jìn)行。)對同一個文件的讀寫操作不能交叉進(jìn)行。 文本文件的定義 文本文件不是簡單地由某類型的元素序列文本文件不是簡單地由某類型的元素序列所組成,它的基本元素是字符,由它們構(gòu)所組成,它的基本元素是字符,由它們構(gòu)成行,若干行組成一份原文。由于各行的成行,若干行組成一份原文。由于各行的長度可以不同,所以文本文件只能順序地長度可以不同,所以文本文件只能順序地處
6、理。處理。 文本文件的定義如下:文本文件的定義如下: var fp1,fp2:text;文件類型的常用命令 (1) assign 語法:語法:assign(filevar,filename); Filename是合法的文件名的字符串表達(dá)式,這個名字是合法的文件名的字符串表達(dá)式,這個名字賦給文件變量賦給文件變量filevar,在程序中對文件變量的操作即,在程序中對文件變量的操作即為對磁盤文件為對磁盤文件Filename的操作。的操作。 如:如:assign(fp1,abc.in); assign(fp2,abc.out); 這時這時fp1,fp2是文件類型變量,是文件類型變量,abc.in、ab
7、c.out是實(shí)際是實(shí)際文件名字,這樣文件變量文件名字,這樣文件變量fp1與與abc.in、fp2與與abc.out、就建立起聯(lián)系了,在程序中就建立起聯(lián)系了,在程序中fp1就可以代表就可以代表abc.in文件、文件、fp2就可以代表就可以代表abc.out文件使用了。文件使用了。 (2)rewrite 語法:語法:rewrite(filevar) 功能:創(chuàng)建一個新的磁盤文件,并以寫的方式打功能:創(chuàng)建一個新的磁盤文件,并以寫的方式打開該文件,初始化文件為空,文件指針指向開始開該文件,初始化文件為空,文件指針指向開始位置。在使用此命令前需先用位置。在使用此命令前需先用assign過程,給文過程,給文
8、件變量一個實(shí)在的文件名。件變量一個實(shí)在的文件名。 如:如:rewrite(fp2); 這時將在磁盤上工作目錄下新這時將在磁盤上工作目錄下新建一個空文件建一個空文件abc.out,并打開該開件。若以前,并打開該開件。若以前工作目錄下存在工作目錄下存在abc.out,則會將原來的文件清,則會將原來的文件清空,并將文件指針指向開始位置???,并將文件指針指向開始位置。 (3)reset 語法:語法:reset(filevar); 功能:打開一個已存在的文件,并將文件指針指功能:打開一個已存在的文件,并將文件指針指向開始位置,表示可開始讀入文件,但不能向文向開始位置,表示可開始讀入文件,但不能向文件寫數(shù)
9、據(jù),同樣件寫數(shù)據(jù),同樣filevar文件名必須存在。文件名必須存在。 如:如:reset(fp1); 打開打開fp1所代表的文件所代表的文件abc.in,并將文件指針指向開始位置。如果工作目錄下不并將文件指針指向開始位置。如果工作目錄下不存在存在abc.in,將會出現(xiàn)錯誤信息,將會出現(xiàn)錯誤信息2。 (4)close 語法:語法:close(filevar) 功能:關(guān)閉一個文件,無論是向磁盤寫文件,還功能:關(guān)閉一個文件,無論是向磁盤寫文件,還是從磁盤上讀取文件的內(nèi)容,當(dāng)讀、寫完畢時都是從磁盤上讀取文件的內(nèi)容,當(dāng)讀、寫完畢時都必須用必須用close命令關(guān)閉已打開的文件,以保證文件命令關(guān)閉已打開的文
10、件,以保證文件的完整性和可靠性,否則將引起文件處理錯誤。的完整性和可靠性,否則將引起文件處理錯誤。 如:如:close(fp2); 這時將關(guān)閉文件這時將關(guān)閉文件fp2,對于被讀,對于被讀的文件,可以關(guān)閉也可以不關(guān)閉,但對于被寫的的文件,可以關(guān)閉也可以不關(guān)閉,但對于被寫的文件,程序結(jié)束時,必須關(guān)閉,否則,所有寫入文件,程序結(jié)束時,必須關(guān)閉,否則,所有寫入的信息將不會被寫入文件。的信息將不會被寫入文件。 (5)read或或readln 語法:語法:read(filevar,var1,var2,varm) 功能:從文件功能:從文件filevar中讀出若干個數(shù)中讀出若干個數(shù),賦給賦給變量變量var1,
11、,varm,這里使用規(guī)則和,這里使用規(guī)則和read原來的使用方法相同,只不過在原來原來的使用方法相同,只不過在原來變量前加一個文件類型變量變量前加一個文件類型變量filevar而已。而已。 如:如:read(fp1,a,b);這時將從這時將從abc.in文件讀文件讀出兩個量分別賦值給出兩個量分別賦值給a和和b兩個變量。兩個變量。 (6)write或或writeln 語法:語法:write(filevar, var1,var2,varm); 功能:向文件功能:向文件filevar中寫入若干個數(shù)。這中寫入若干個數(shù)。這里使用規(guī)則和里使用規(guī)則和write原來的使用方法相同,原來的使用方法相同,只不過在
12、原來變量前加一個文件類型變量只不過在原來變量前加一個文件類型變量filevar而已。而已。 如:如:write(fp2,a,b);這時將向這時將向abc.out文件文件寫入寫入a和和b兩個變量的值。兩個變量的值。 (7)eoln函數(shù)函數(shù) 語法:語法:eoln(filevar); 功能:行結(jié)束函數(shù),其中文件功能:行結(jié)束函數(shù),其中文件filevar一定一定為為text類型,函數(shù)值為布爾型。當(dāng)文件指類型,函數(shù)值為布爾型。當(dāng)文件指針向回車換行符時,函數(shù)值為針向回車換行符時,函數(shù)值為true(真),(真),否則為否則為false(假假)。 (8)eof函數(shù)(相當(dāng)于函數(shù)(相當(dāng)于seekeof()) 語法:
13、語法:eof(filevar) 功能:文件結(jié)束函數(shù),其中文件功能:文件結(jié)束函數(shù),其中文件filevar是是文件類型變量,函數(shù)值是布爾值。當(dāng)文件文件類型變量,函數(shù)值是布爾值。當(dāng)文件指針指向文件結(jié)束標(biāo)志時,函數(shù)值為指針指向文件結(jié)束標(biāo)志時,函數(shù)值為true (真真),否則為,否則為false(假假)。它通常寫作。它通常寫作seekeof。該函數(shù)一般用以判斷文件是否。該函數(shù)一般用以判斷文件是否結(jié)束。結(jié)束。文件類型輸入輸出一般用法 在我們使用文件類型輸入輸出時,通常用標(biāo)準(zhǔn)輸入文件在我們使用文件類型輸入輸出時,通常用標(biāo)準(zhǔn)輸入文件input和標(biāo)準(zhǔn)的輸出和標(biāo)準(zhǔn)的輸出文件文件output來表示文件類型變量,這樣
14、在程序中的輸入輸出操作就和不用來表示文件類型變量,這樣在程序中的輸入輸出操作就和不用文件類型輸入輸出格式一樣了。具體形式如下:文件類型輸入輸出格式一樣了。具體形式如下:文件輸入輸出一般格式文件輸入輸出一般格式:程序體的開始處加上程序體的開始處加上:assign(input,輸入文件名輸入文件名); 將輸入文件和標(biāo)準(zhǔn)輸入文件將輸入文件和標(biāo)準(zhǔn)輸入文件input建立起聯(lián)系建立起聯(lián)系reset(input); 打開輸入文件打開輸入文件 assign(output,輸出文件名輸出文件名); 將輸出文件和標(biāo)準(zhǔn)輸出文件將輸出文件和標(biāo)準(zhǔn)輸出文件output建立起聯(lián)系建立起聯(lián)系rewrite(output);
15、建立輸出文件建立輸出文件 程序體的結(jié)尾處加上程序體的結(jié)尾處加上:close(input); 關(guān)閉輸入文件關(guān)閉輸入文件close(output); 關(guān)閉輸出文件關(guān)閉輸出文件注意注意:在運(yùn)行程序前在運(yùn)行程序前,一定要在一定要在FP的工作目錄中建立一個輸入文件。否則將的工作目錄中建立一個輸入文件。否則將出錯。出錯。 例:讀入兩個整數(shù),輸出兩個數(shù)的和。用文件類型輸入輸出。例:讀入兩個整數(shù),輸出兩個數(shù)的和。用文件類型輸入輸出。文件名為:文件名為:abc.pas測試數(shù)據(jù):測試數(shù)據(jù):輸入文件:輸入文件:abc.in152 908輸出文件:輸出文件:abc.out1060程序程序1: program abc;
16、 var fp1,fp2:text; a,b,c:longint; begin assign(fp1,abc.in); reset(fp1); assign(fp2,abc.out); rewrite(fp2); read(fp1,a,b); c:=a+b; write(fp2,c); close(fp1); close(fp2); end.程序程序2: program abc; var a,b,c:longint; begin assign(input,abc.in); reset(input); assign(output,abc.out); rewrite(output); read(a
17、,b); c:=a+b; write(c); close(input); close(output); end.我們運(yùn)行一下,發(fā)現(xiàn)這兩個程序的功能是一樣的,因此,我們用我們運(yùn)行一下,發(fā)現(xiàn)這兩個程序的功能是一樣的,因此,我們用文件類型輸入輸出時,一般用程序文件類型輸入輸出時,一般用程序2的形式。的形式。例:讀入長方形的長和寬,求它的周長和面積。用文件類例:讀入長方形的長和寬,求它的周長和面積。用文件類型輸入輸出。文件名為:型輸入輸出。文件名為:cfx.pas保留兩位小數(shù),兩個數(shù)字隔一空格。保留兩位小數(shù),兩個數(shù)字隔一空格。測試數(shù)據(jù):測試數(shù)據(jù):輸入文件輸入文件cfx.in:2.5 3.6輸出文件輸出文件cfx.out:12.20 9.00程序如下:程序如下:program changfx; var a,b,c,s:real; begin assign(input,cfx.in); reset(input); assign(output,cfx.out); rewrite(output); read(a,b); c:=2*(a+b); s:=a*b; writeln(c:0:2, ,s:0:2); close(input); close(output); end. 練習(xí)題1(程序名:(程序名:ga07.as)已知三角形的底)已知三角形的底a和高和高h(yuǎn)的值,輸出
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國阻燃電線電纜行業(yè)市場調(diào)研分析及投資戰(zhàn)略咨詢報(bào)告
- 2025年圖書出版項(xiàng)目深度研究分析報(bào)告
- 復(fù)合材系列粘合劑融資投資立項(xiàng)項(xiàng)目可行性研究報(bào)告(齊魯咨詢)
- 2025年中國嵌入式爐灶底殼行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 河北省卓越聯(lián)盟2025年高一下化學(xué)期末預(yù)測試題含解析
- 2019-2025年中國龍蝦養(yǎng)殖行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報(bào)告
- 中國皮革數(shù)控沖孔機(jī)行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告(2024-2030)
- 中國緊湊型熒光燈市場競爭態(tài)勢及行業(yè)投資潛力預(yù)測報(bào)告
- 物業(yè)管理處規(guī)章制度
- 2025年水務(wù)行業(yè)市場趨勢分析報(bào)告
- 上海寶山區(qū)公開招聘社區(qū)工作者考試高頻題庫帶答案2025年
- 體育經(jīng)紀(jì)人資格考試復(fù)習(xí)資料
- 2025年英語四級考試試卷及答案
- 中國絲綢文化課件
- 人工血管內(nèi)瘺穿刺技巧與護(hù)理
- 脊柱術(shù)后腦脊液漏護(hù)理
- 預(yù)防溺水小學(xué)課件
- 血小板減少課件
- 裝修工程滿堂腳手架施工方案
- 12J12無障礙設(shè)施圖集
- VMware數(shù)據(jù)中心的服務(wù)器虛擬化與運(yùn)維管理解決方案
評論
0/150
提交評論