信息學(xué)奧賽-文件操作重點(diǎn)課件_第1頁
信息學(xué)奧賽-文件操作重點(diǎn)課件_第2頁
信息學(xué)奧賽-文件操作重點(diǎn)課件_第3頁
信息學(xué)奧賽-文件操作重點(diǎn)課件_第4頁
信息學(xué)奧賽-文件操作重點(diǎn)課件_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

文件操作文件操作1文件操作不存儲程序的計算機(jī)還不如一個強(qiáng)有力的計算器,最早購買不帶磁盤驅(qū)動器的用戶很快就明白了這一點(diǎn)——當(dāng)他們關(guān)掉計算機(jī)的電源時,其工作成果也很就隨之消失了。因而,當(dāng)你的計算機(jī)具備了一個軟盤驅(qū)動器或者還有一個硬盤時,學(xué)習(xí)使用磁盤文件對編寫有用的程序來說就是很重要的了。下面就來介紹Pascal文件的有關(guān)知識。文件操作不存儲程序的計算機(jī)還不如一個強(qiáng)有力的計算器,最早購買2

文件的概念

文件是指由一系列相同類型數(shù)據(jù)組成的一個數(shù)據(jù)序列,是一種由用戶定義的構(gòu)造型的數(shù)據(jù)類型。作為系統(tǒng)提供的一種手段,是計算機(jī)與各類設(shè)備進(jìn)行通訊的媒介,從而用以實(shí)現(xiàn)信息在程序內(nèi)外的交換。對于文件我們實(shí)際上早已在使用,前面出現(xiàn)的Pascal程序中的輸入、輸出就是應(yīng)用文件的方法來實(shí)現(xiàn)的,這些文件的名字是Pascal的標(biāo)準(zhǔn)文件“INPUT”和“OUTPUT”,它們分別對應(yīng)于標(biāo)準(zhǔn)輸入設(shè)備和標(biāo)準(zhǔn)輸出設(shè)備,在FreePascal中可省略不寫。文件的概念文件是指由一系列相同類型數(shù)據(jù)組成的一個數(shù)據(jù)序列3文件的分類

在Pascal的數(shù)據(jù)文件中,按文件結(jié)構(gòu)形式劃分,以ASCII代碼形式(字符形式)存放的稱為TEXT類型文件,也稱為文本文件,這是我們經(jīng)常要用到的文件類型。還有一種以二進(jìn)制代碼形式存放的文件,稱為File類型文件,它又稱為類型文件。我們平時用到的是第一種文件類型:文本文件。文件的分類在Pascal的數(shù)據(jù)文件中,按文件結(jié)構(gòu)形式劃分,4文本文件特征(1)當(dāng)程序開始把數(shù)據(jù)寫(輸出)到文件中去時,總是從文件的起始位置開始。也就是不能從文件的中間位置開始存放數(shù)據(jù)。(2)輸出的數(shù)據(jù)是一個接一個地存放在文件中的。(3)當(dāng)程序從文件中讀(輸入)數(shù)據(jù)到內(nèi)存中時,總是從文件的起始位置開始。也就是不可能從文件的中間的某個位置開始讀入數(shù)據(jù)。(4)讀數(shù)據(jù)時,必須按存入文件時的順序一個接一個的讀入內(nèi)存中去。(5)對同一個文件的讀寫操作不能交叉進(jìn)行。文本文件特征(1)當(dāng)程序開始把數(shù)據(jù)寫(輸出)到文件中去時,總5文本文件的定義文本文件不是簡單地由某類型的元素序列所組成,它的基本元素是字符,由它們構(gòu)成行,若干行組成一份原文。由于各行的長度可以不同,所以文本文件只能順序地處理。文本文件的定義如下:varfp1,fp2:text;文本文件的定義文本文件不是簡單地由某類型的元素序列所組成,6文件類型的常用命令(1)assign語法:assign(filevar,filename);Filename是合法的文件名的字符串表達(dá)式,這個名字賦給文件變量filevar,在程序中對文件變量的操作即為對磁盤文件Filename的操作。如:assign(fp1,’abc.in’);assign(fp2,’abc.out’);這時fp1,fp2是文件類型變量,abc.in、abc.out是實(shí)際文件名字,這樣文件變量fp1與abc.in、fp2與abc.out、就建立起聯(lián)系了,在程序中fp1就可以代表abc.in文件、fp2就可以代表abc.out文件使用了。文件類型的常用命令(1)assign7(2)rewrite語法:rewrite(filevar)功能:創(chuàng)建一個新的磁盤文件,并以寫的方式打開該文件,初始化文件為空,文件指針指向開始位置。在使用此命令前需先用assign過程,給文件變量一個實(shí)在的文件名。如:rewrite(fp2);這時將在磁盤上工作目錄下新建一個空文件abc.out,并打開該開件。若以前工作目錄下存在abc.out,則會將原來的文件清空,并將文件指針指向開始位置。(2)rewrite8(3)reset語法:reset(filevar);功能:打開一個已存在的文件,并將文件指針指向開始位置,表示可開始讀入文件,但不能向文件寫數(shù)據(jù),同樣filevar文件名必須存在。如:reset(fp1);打開fp1所代表的文件abc.in,并將文件指針指向開始位置。如果工作目錄下不存在abc.in,將會出現(xiàn)錯誤信息2。(3)reset9(4)close語法:close(filevar)功能:關(guān)閉一個文件,無論是向磁盤寫文件,還是從磁盤上讀取文件的內(nèi)容,當(dāng)讀、寫完畢時都必須用close命令關(guān)閉已打開的文件,以保證文件的完整性和可靠性,否則將引起文件處理錯誤。如:close(fp2);這時將關(guān)閉文件fp2,對于被讀的文件,可以關(guān)閉也可以不關(guān)閉,但對于被寫的文件,程序結(jié)束時,必須關(guān)閉,否則,所有寫入的信息將不會被寫入文件。(4)close10(5)read或readln語法:read(filevar,var1,var2,…,varm)功能:從文件filevar中讀出若干個數(shù),賦給變量var1,…,varm,這里使用規(guī)則和read原來的使用方法相同,只不過在原來變量前加一個文件類型變量filevar而已。如:read(fp1,a,b);這時將從abc.in文件讀出兩個量分別賦值給a和b兩個變量。(5)read或readln11(6)write或writeln語法:write(filevar,var1,var2,…,varm);功能:向文件filevar中寫入若干個數(shù)。這里使用規(guī)則和write原來的使用方法相同,只不過在原來變量前加一個文件類型變量filevar而已。如:write(fp2,a,b);這時將向abc.out文件寫入a和b兩個變量的值。(6)write或writeln12(7)eoln函數(shù)語法:eoln(filevar);功能:行結(jié)束函數(shù),其中文件filevar一定為text類型,函數(shù)值為布爾型。當(dāng)文件指針向回車換行符時,函數(shù)值為true(真),否則為false(假)。(7)eoln函數(shù)13(8)eof函數(shù)(相當(dāng)于seekeof())語法:eof(filevar)功能:文件結(jié)束函數(shù),其中文件filevar是文件類型變量,函數(shù)值是布爾值。當(dāng)文件指針指向文件結(jié)束標(biāo)志時,函數(shù)值為true(真),否則為false(假)。它通常寫作seekeof。該函數(shù)一般用以判斷文件是否結(jié)束。(8)eof函數(shù)(相當(dāng)于seekeof())14文件類型輸入輸出一般用法在我們使用文件類型輸入輸出時,通常用標(biāo)準(zhǔn)輸入文件input和標(biāo)準(zhǔn)的輸出文件output來表示文件類型變量,這樣在程序中的輸入輸出操作就和不用文件類型輸入輸出格式一樣了。具體形式如下:文件輸入輸出一般格式:程序體的開始處加上:assign(input,'輸入文件名');

{將輸入文件和標(biāo)準(zhǔn)輸入文件input建立起聯(lián)系}reset(input);

{打開輸入文件}assign(output,'輸出文件名');{將輸出文件和標(biāo)準(zhǔn)輸出文件output建立起聯(lián)系}rewrite(output);

{建立輸出文件}程序體的結(jié)尾處加上:close(input);

{關(guān)閉輸入文件}close(output);

{關(guān)閉輸出文件}注意:在運(yùn)行程序前,一定要在FP的工作目錄中建立一個輸入文件。否則將出錯。文件類型輸入輸出一般用法在我們使用文件類型輸入輸出時,通常15例:讀入兩個整數(shù),輸出兩個數(shù)的和。用文件類型輸入輸出。文件名為:abc.pas測試數(shù)據(jù):輸入文件:abc.in152908輸出文件:abc.out1060例:讀入兩個整數(shù),輸出兩個數(shù)的和。用文件類型輸入輸出。文件名16程序1:programabc;varfp1,fp2:text;a,b,c:longint;beginassign(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:programabc;vara,b,c:longint;beginassign(input,'abc.in');reset(input);assign(output,'abc.out');rewrite(output);read(a,b);c:=a+b;write(c);close(input);close(output);end.我們運(yùn)行一下,發(fā)現(xiàn)這兩個程序的功能是一樣的,因此,我們用文件類型輸入輸出時,一般用程序2的形式。程序1:程序2:我們運(yùn)行一下,發(fā)現(xiàn)這兩個程序的功能是一樣的,17例:讀入長方形的長和寬,求它的周長和面積。用文件類型輸入輸出。文件名為:cfx.pas保留兩位小數(shù),兩個數(shù)字隔一空格。測試數(shù)據(jù):輸入文件cfx.in:2.53.6輸出文件cfx.out:12.209.00程序如下:programchangfx;vara,b,c,s:real;beginassign(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.例:讀入長方形的長和寬,求它的周長和面積。用文件類型輸入輸出18練習(xí)題1.(程序名:ga07.pas)已知三角形的底a和高h(yuǎn)的值,輸出面積S。保留二位小數(shù),用文件類型輸入輸出。測試數(shù)據(jù):輸入ga07.in:10.52.0輸出ga07.out:10.502.(程序名:ga08.pas)已知梯形的面積是S,高是H,上底是A,輸出梯形的下底B,保留二位小數(shù),用文件類型輸入輸出。測試數(shù)據(jù)輸入文件ga08.in:分別為面積S、高H和上底A78205.2輸出文件ga08.out:下底B2.60練習(xí)題1.(程序名:ga07.pas)已知三角形的底a和高h(yuǎn)19文件操作文件操作20文件操作不存儲程序的計算機(jī)還不如一個強(qiáng)有力的計算器,最早購買不帶磁盤驅(qū)動器的用戶很快就明白了這一點(diǎn)——當(dāng)他們關(guān)掉計算機(jī)的電源時,其工作成果也很就隨之消失了。因而,當(dāng)你的計算機(jī)具備了一個軟盤驅(qū)動器或者還有一個硬盤時,學(xué)習(xí)使用磁盤文件對編寫有用的程序來說就是很重要的了。下面就來介紹Pascal文件的有關(guān)知識。文件操作不存儲程序的計算機(jī)還不如一個強(qiáng)有力的計算器,最早購買21

文件的概念

文件是指由一系列相同類型數(shù)據(jù)組成的一個數(shù)據(jù)序列,是一種由用戶定義的構(gòu)造型的數(shù)據(jù)類型。作為系統(tǒng)提供的一種手段,是計算機(jī)與各類設(shè)備進(jìn)行通訊的媒介,從而用以實(shí)現(xiàn)信息在程序內(nèi)外的交換。對于文件我們實(shí)際上早已在使用,前面出現(xiàn)的Pascal程序中的輸入、輸出就是應(yīng)用文件的方法來實(shí)現(xiàn)的,這些文件的名字是Pascal的標(biāo)準(zhǔn)文件“INPUT”和“OUTPUT”,它們分別對應(yīng)于標(biāo)準(zhǔn)輸入設(shè)備和標(biāo)準(zhǔn)輸出設(shè)備,在FreePascal中可省略不寫。文件的概念文件是指由一系列相同類型數(shù)據(jù)組成的一個數(shù)據(jù)序列22文件的分類

在Pascal的數(shù)據(jù)文件中,按文件結(jié)構(gòu)形式劃分,以ASCII代碼形式(字符形式)存放的稱為TEXT類型文件,也稱為文本文件,這是我們經(jīng)常要用到的文件類型。還有一種以二進(jìn)制代碼形式存放的文件,稱為File類型文件,它又稱為類型文件。我們平時用到的是第一種文件類型:文本文件。文件的分類在Pascal的數(shù)據(jù)文件中,按文件結(jié)構(gòu)形式劃分,23文本文件特征(1)當(dāng)程序開始把數(shù)據(jù)寫(輸出)到文件中去時,總是從文件的起始位置開始。也就是不能從文件的中間位置開始存放數(shù)據(jù)。(2)輸出的數(shù)據(jù)是一個接一個地存放在文件中的。(3)當(dāng)程序從文件中讀(輸入)數(shù)據(jù)到內(nèi)存中時,總是從文件的起始位置開始。也就是不可能從文件的中間的某個位置開始讀入數(shù)據(jù)。(4)讀數(shù)據(jù)時,必須按存入文件時的順序一個接一個的讀入內(nèi)存中去。(5)對同一個文件的讀寫操作不能交叉進(jìn)行。文本文件特征(1)當(dāng)程序開始把數(shù)據(jù)寫(輸出)到文件中去時,總24文本文件的定義文本文件不是簡單地由某類型的元素序列所組成,它的基本元素是字符,由它們構(gòu)成行,若干行組成一份原文。由于各行的長度可以不同,所以文本文件只能順序地處理。文本文件的定義如下:varfp1,fp2:text;文本文件的定義文本文件不是簡單地由某類型的元素序列所組成,25文件類型的常用命令(1)assign語法:assign(filevar,filename);Filename是合法的文件名的字符串表達(dá)式,這個名字賦給文件變量filevar,在程序中對文件變量的操作即為對磁盤文件Filename的操作。如:assign(fp1,’abc.in’);assign(fp2,’abc.out’);這時fp1,fp2是文件類型變量,abc.in、abc.out是實(shí)際文件名字,這樣文件變量fp1與abc.in、fp2與abc.out、就建立起聯(lián)系了,在程序中fp1就可以代表abc.in文件、fp2就可以代表abc.out文件使用了。文件類型的常用命令(1)assign26(2)rewrite語法:rewrite(filevar)功能:創(chuàng)建一個新的磁盤文件,并以寫的方式打開該文件,初始化文件為空,文件指針指向開始位置。在使用此命令前需先用assign過程,給文件變量一個實(shí)在的文件名。如:rewrite(fp2);這時將在磁盤上工作目錄下新建一個空文件abc.out,并打開該開件。若以前工作目錄下存在abc.out,則會將原來的文件清空,并將文件指針指向開始位置。(2)rewrite27(3)reset語法:reset(filevar);功能:打開一個已存在的文件,并將文件指針指向開始位置,表示可開始讀入文件,但不能向文件寫數(shù)據(jù),同樣filevar文件名必須存在。如:reset(fp1);打開fp1所代表的文件abc.in,并將文件指針指向開始位置。如果工作目錄下不存在abc.in,將會出現(xiàn)錯誤信息2。(3)reset28(4)close語法:close(filevar)功能:關(guān)閉一個文件,無論是向磁盤寫文件,還是從磁盤上讀取文件的內(nèi)容,當(dāng)讀、寫完畢時都必須用close命令關(guān)閉已打開的文件,以保證文件的完整性和可靠性,否則將引起文件處理錯誤。如:close(fp2);這時將關(guān)閉文件fp2,對于被讀的文件,可以關(guān)閉也可以不關(guān)閉,但對于被寫的文件,程序結(jié)束時,必須關(guān)閉,否則,所有寫入的信息將不會被寫入文件。(4)close29(5)read或readln語法:read(filevar,var1,var2,…,varm)功能:從文件filevar中讀出若干個數(shù),賦給變量var1,…,varm,這里使用規(guī)則和read原來的使用方法相同,只不過在原來變量前加一個文件類型變量filevar而已。如:read(fp1,a,b);這時將從abc.in文件讀出兩個量分別賦值給a和b兩個變量。(5)read或readln30(6)write或writeln語法:write(filevar,var1,var2,…,varm);功能:向文件filevar中寫入若干個數(shù)。這里使用規(guī)則和write原來的使用方法相同,只不過在原來變量前加一個文件類型變量filevar而已。如:write(fp2,a,b);這時將向abc.out文件寫入a和b兩個變量的值。(6)write或writeln31(7)eoln函數(shù)語法:eoln(filevar);功能:行結(jié)束函數(shù),其中文件filevar一定為text類型,函數(shù)值為布爾型。當(dāng)文件指針向回車換行符時,函數(shù)值為true(真),否則為false(假)。(7)eoln函數(shù)32(8)eof函數(shù)(相當(dāng)于seekeof())語法:eof(filevar)功能:文件結(jié)束函數(shù),其中文件filevar是文件類型變量,函數(shù)值是布爾值。當(dāng)文件指針指向文件結(jié)束標(biāo)志時,函數(shù)值為true(真),否則為false(假)。它通常寫作seekeof。該函數(shù)一般用以判斷文件是否結(jié)束。(8)eof函數(shù)(相當(dāng)于seekeof())33文件類型輸入輸出一般用法在我們使用文件類型輸入輸出時,通常用標(biāo)準(zhǔn)輸入文件input和標(biāo)準(zhǔn)的輸出文件output來表示文件類型變量,這樣在程序中的輸入輸出操作就和不用文件類型輸入輸出格式一樣了。具體形式如下:文件輸入輸出一般格式:程序體的開始處加上:assign(input,'輸入文件名');

{將輸入文件和標(biāo)準(zhǔn)輸入文件input建立起聯(lián)系}reset(input);

{打開輸入文件}assign(output,'輸出文件名');{將輸出文件和標(biāo)準(zhǔn)輸出文件output建立起聯(lián)系}rewrite(output);

{建立輸出文件}程序體的結(jié)尾處加上:close(input);

{關(guān)閉輸入文件}close(output);

{關(guān)閉輸出文件}注意:在運(yùn)行程序前,一定要在FP的工作目錄中建立一個輸入文件。否則將出錯。文件類型輸入輸出一般用法在我們使用文件類型輸入輸出時,通常34例:讀入兩個整數(shù),輸出兩個數(shù)的和。用文件類型輸入輸出。文件名為:abc.pas測試數(shù)據(jù):輸入文件:abc.in152908輸出文件:abc.out1060例:讀入兩個整數(shù),輸出兩個數(shù)的和。用文件類型輸入輸出。文件名35程序1:programabc;varfp1,fp2:text;a,b,c:longint;beginassign(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:programabc;vara,b,c:longint;beginassign(input,'abc.in');reset(input);assign(

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論