




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第七講文獻(xiàn)及使用第1頁(yè)7.1文獻(xiàn)概念文獻(xiàn):寄存在某種存放設(shè)備上一組數(shù)據(jù)集合,由文獻(xiàn)名唯一標(biāo)識(shí)。文獻(xiàn)由若干統(tǒng)計(jì)組成。沒(méi)有統(tǒng)計(jì)文獻(xiàn)為空文獻(xiàn)。文獻(xiàn)操作(讀、寫)以統(tǒng)計(jì)為單位。從文獻(xiàn)中一次輸入一種統(tǒng)計(jì),向文獻(xiàn)中一次輸出一種統(tǒng)計(jì)。通過(guò)READ和WRITE語(yǔ)句從文獻(xiàn)中輸入輸出數(shù)據(jù)。文獻(xiàn)分外部文獻(xiàn)和內(nèi)部文獻(xiàn)兩種文獻(xiàn)。第2頁(yè)外部文獻(xiàn):連接在計(jì)算機(jī)主機(jī)上一類設(shè)備(如:鍵盤、顯示屏、打印機(jī)等)或寄存在外部存放器上文獻(xiàn)。外部文獻(xiàn)通過(guò)一種符合windows命名規(guī)則文獻(xiàn)名進(jìn)行標(biāo)識(shí)。外部文獻(xiàn)特點(diǎn):能長(zhǎng)期保存大批量數(shù)據(jù)。在程序中使用外部文獻(xiàn),必須先用OPEN語(yǔ)句為外部文獻(xiàn)指定設(shè)備號(hào),建立外部文獻(xiàn)與設(shè)備號(hào)之間聯(lián)系。如:OPEN(1,FILE='exam2.in')OPEN(2,FILE='exam2.out')READ(1,*)(score(I),I=1,N)WRITE(2,*)‘學(xué)生成績(jī)有:’第3頁(yè)內(nèi)部文獻(xiàn):寄存在內(nèi)存放器上文獻(xiàn)。通過(guò)一種字符變量進(jìn)行標(biāo)識(shí)。內(nèi)部文獻(xiàn)特點(diǎn):保存小批量數(shù)據(jù),不能長(zhǎng)期保存。內(nèi)部文獻(xiàn)作用:一般用于少許二進(jìn)制數(shù)據(jù)與字符型數(shù)據(jù)互相轉(zhuǎn)換,以及字符串和合并或截取。如:PROGRAMexam4CHARACTER*40str1,str2str1='125,250,375'READ(str1,*)i,j,kWRITE(str2,100)i,j,k,i+j+k100FORMAT('i=',I3,'j=',I3,'k=',I3,'i+j+k=',I3)write(*,*)i,j,kwrite(*,*)str2END第4頁(yè)外部文獻(xiàn)也稱磁盤數(shù)據(jù)文獻(xiàn),簡(jiǎn)稱文獻(xiàn)。有三種存放格式和兩種存取方式。根據(jù)不一樣存放格式和存取方式分類,有六種文獻(xiàn)類型。有格式次序存取文獻(xiàn)。有格式直接存取文獻(xiàn)。無(wú)格式次序存取文獻(xiàn)。無(wú)格式直接存取文獻(xiàn)。二進(jìn)制直接存取文獻(xiàn)。二進(jìn)制次序存取文獻(xiàn)。7.2外部文獻(xiàn)分類第5頁(yè)存放格式是指文獻(xiàn)中數(shù)據(jù)存放規(guī)則和組織構(gòu)造。有三種存放格式:有格式、無(wú)格式和二進(jìn)制。有格式存放格式:文獻(xiàn)中數(shù)據(jù)以字符形式(ASCII碼)寄存,以回車符(CR)和換行符(LF)作為字符行結(jié)束標(biāo)志。在OPEN語(yǔ)句中用FORM選項(xiàng)指定‘FORMATTED‘,可缺省。OPEN(UNIT=1,FILE='exam2.in',FORM='FORMATTED')OPEN(UNIT=2,FILE='exam2.out')無(wú)格式存放格式:文獻(xiàn)中數(shù)據(jù)以二進(jìn)制形式寄存。在OPEN語(yǔ)句中用FORM選項(xiàng)指定‘UNFORMATTED‘。OPEN(UNIT=1,FILE='exam2.in',FORM=‘UNFORMATTED')OPEN(UNIT=2,FILE='exam2.out',FORM=‘UNFORMATTED')二進(jìn)制存放格式:文獻(xiàn)中數(shù)據(jù)以真正二進(jìn)制編碼形式(在內(nèi)存存放形式)寄存。在OPEN語(yǔ)句中用FORM選項(xiàng)指定‘BINARY‘。OPEN(UNIT=1,FILE='exam2.in',FORM=‘BINARY')OPEN(UNIT=2,FILE='exam2.out',FORM=‘BINARY')第6頁(yè)存取方式是指對(duì)文獻(xiàn)中數(shù)據(jù)讀寫方式,也稱文獻(xiàn)訪問(wèn)方式。有兩種存取方式:次序存取和直接存取。內(nèi)部文獻(xiàn)只有次序存取,外部文獻(xiàn)可次序存取,也可直接存取。次序存取文獻(xiàn)統(tǒng)計(jì)長(zhǎng)度可不一樣,直接存取文獻(xiàn)統(tǒng)計(jì)長(zhǎng)度相同。次序存取方式:在進(jìn)行存取操作時(shí)只能從第1個(gè)統(tǒng)計(jì)開始按存放次序依次進(jìn)行,即在程序中要讀寫第N個(gè)數(shù)據(jù)時(shí),必須先讀寫前面N-1個(gè)數(shù)據(jù),讀寫時(shí)可使用REWIND或BACKSPACE語(yǔ)句變化文獻(xiàn)指針位置(讀寫位置)。在OPEN語(yǔ)句中用ACCESS選項(xiàng)指定‘SEQUENTIAL‘,對(duì)有格式文獻(xiàn)可缺省。OPEN(UNIT=1,FILE='exam2.in',ACCESS=‘SEQUENTIAL')OPEN(UNIT=2,FILE='exam2.out')直接存取方式:在進(jìn)行存取操作時(shí)能夠讀寫任意一種統(tǒng)計(jì)(數(shù)據(jù)),也稱隨機(jī)存取方式。OPEN(UNIT=1,FILE='exam2.in',ACCESS=‘DIRECT‘,RECL=40)OPEN(UNIT=2,FILE='exam2.out',ACCESS=‘DIRECT‘,RECL=40)第7頁(yè)每一種文獻(xiàn)都有一種隱含指針,稱為文獻(xiàn)指針,文獻(xiàn)指針指向文獻(xiàn)中一種統(tǒng)計(jì),來(lái)控制文獻(xiàn)目前讀寫位置。文獻(xiàn)打開后,文獻(xiàn)指針指向第一種統(tǒng)計(jì)。文獻(xiàn)指針指向統(tǒng)計(jì)稱為目前統(tǒng)計(jì)。文獻(xiàn)指針指向第一種統(tǒng)計(jì)位置,稱為文獻(xiàn)起始位置,文獻(xiàn)指針指向最后一種統(tǒng)計(jì)位置,稱為文獻(xiàn)結(jié)束位置。對(duì)于次序文獻(xiàn),在讀寫前,要對(duì)文獻(xiàn)指針進(jìn)行定位,對(duì)于直接文獻(xiàn),在讀寫過(guò)程中,要對(duì)文獻(xiàn)指針進(jìn)行定位。在文獻(xiàn)數(shù)據(jù)讀寫過(guò)程中,只對(duì)文獻(xiàn)指針指向目前統(tǒng)計(jì)進(jìn)行讀寫(存?。?。數(shù)據(jù)文獻(xiàn)文獻(xiàn)指針統(tǒng)計(jì)1統(tǒng)計(jì)2···
統(tǒng)計(jì)i···
統(tǒng)計(jì)n第8頁(yè)7.3文獻(xiàn)基本操作在讀寫文獻(xiàn)數(shù)據(jù)前,需通過(guò)OPEN語(yǔ)句將文獻(xiàn)打開。建立邏輯設(shè)備符(文獻(xiàn)編號(hào))與磁盤上外部文獻(xiàn)之間關(guān)系。一般格式:
OPEN([UNIT=]<設(shè)備號(hào)>,FILE=<文獻(xiàn)名>[,ACCESS=<存取方式>][,FORM=<存放格式>][,RECL=<統(tǒng)計(jì)長(zhǎng)度>][,ERR=<錯(cuò)誤轉(zhuǎn)移>]
[,BLOCKSIZE=<緩沖區(qū)大小>][,CARRIAGECONTROL=<首字符含義>][,DELIM=<分界符>][,BLANK=<空格含義>][,ACTION=<讀寫方式>][,IOFOCUS=<子窗口>][,IOSTAT=<IO狀態(tài)>][,PAD=<補(bǔ)加空格>][,POSITION=<讀取位置>][,SHARE=<共享>][,STATUS=<文獻(xiàn)屬性>])第9頁(yè)文獻(xiàn)讀寫操作結(jié)束后,可通過(guò)CLOSE語(yǔ)句將文獻(xiàn)關(guān)閉。取消邏輯設(shè)備符(文獻(xiàn)編號(hào))與磁盤上外部文獻(xiàn)之間關(guān)系。CLOSE語(yǔ)句可缺省。一般格式:
CLOSE([Unit=]<設(shè)備號(hào)>[,ERR=<錯(cuò)誤轉(zhuǎn)移>][,IOSTAT=<IO狀態(tài)>][,STATUS=<文獻(xiàn)屬性>])
第10頁(yè)文獻(xiàn)在操作過(guò)程中,可強(qiáng)制在文獻(xiàn)內(nèi)目前統(tǒng)計(jì)位置后置文獻(xiàn)結(jié)束標(biāo)志。使用ENDFILE語(yǔ)句可強(qiáng)制設(shè)置文獻(xiàn)結(jié)束標(biāo)志,文獻(xiàn)結(jié)束標(biāo)志后統(tǒng)計(jì)被清除。一般格式:
ENDFILE{<設(shè)備號(hào)>∣([UNIT=]<設(shè)備號(hào)>[,ERR=<錯(cuò)誤轉(zhuǎn)移>][,IOSTAT=<IO狀態(tài)>])}
第11頁(yè)文獻(xiàn)打開后,從文獻(xiàn)輸入數(shù)據(jù)。使用READ語(yǔ)句完成數(shù)據(jù)輸入。一般格式:
READ{{<格式說(shuō)明>,∣<名字列表>}∣([UNIT=]<設(shè)備號(hào)>[,{[FMT=]<格式說(shuō)明>∣[NML=]<名字列表>}]
[,ADVANCE=<高級(jí)輸入>][,END=<結(jié)束轉(zhuǎn)移>][,EOR=<統(tǒng)計(jì)轉(zhuǎn)移>][,ERR=<錯(cuò)誤轉(zhuǎn)移>][,IOSTAT=<IO狀態(tài)>][,REC=<統(tǒng)計(jì)號(hào)>][,SIZE=<輸入尺寸>])}<輸入數(shù)據(jù)列表>
第12頁(yè)文獻(xiàn)打開后,向文獻(xiàn)輸出數(shù)據(jù)。使用WRITE語(yǔ)句完成數(shù)據(jù)輸出。一般格式:WRITE([UNIT=]<設(shè)備號(hào)>[,{[FMT=]<格式說(shuō)明>∣[NML=]<名字列表>}][,ADVANCE=<高級(jí)輸入>][,ERR=<錯(cuò)誤轉(zhuǎn)移>][,IOSTAT=<IO狀態(tài)>][,REC=<統(tǒng)計(jì)號(hào)>])<輸出數(shù)據(jù)列表>
第13頁(yè)文獻(xiàn)打開后,在文獻(xiàn)存取操作過(guò)程中有時(shí)要查詢文獻(xiàn)有關(guān)狀態(tài)和屬性,方便決定某種操作。使用INQUIRE語(yǔ)句完成屬性查詢。一般格式:INQUIRE({[UNIT=]unit∣FILE=file∣IOLENGTH=iolength}[,ACCESS=access][,SEQUENTIAL=sequential][,DIRECT=direct][,FORM=form][,FORMATTED=formatted][,UNFORMATTED=unformatted][,BINARY=binary][,ACTION=action][,MODE=mode][,READ=read][,WRITE=write][,READWRITE=readwrite][,BLANK=blank][,BLOCKSIZE=blocksize][,CARRIAGECONTROL=carriagecontrol][,DELIM=delim][,ERR=err][,EXIST=exist][,IOFOCUS=iofocus][,IOSTAT=iostat][,NAME=name][,NAMED=named][,RECL=recl>][,NEXTREC=nextrec][,RECORDTYPE=recordtype][,NUMBER=number][,PAD=pad][,POSITION=position][,SHARE=share][,OPENED=opened])第14頁(yè)文獻(xiàn)打開后,在讀寫操作中有時(shí)要將目前文獻(xiàn)指針位置指向文獻(xiàn)起始位置(稱為反繞,類似倒帶操作),方便從起始位置進(jìn)行讀寫操作。使用REWIND語(yǔ)句完成文獻(xiàn)指針?lè)蠢@操作。一般格式:REWIND{<設(shè)備號(hào)>∣([Unit=]<設(shè)備號(hào)>∣ERR=<錯(cuò)誤轉(zhuǎn)移>∣IOSTAT=<犯錯(cuò)狀態(tài)>)}第15頁(yè)文獻(xiàn)打開后,在文獻(xiàn)存取操作過(guò)程中有時(shí)要將目前文獻(xiàn)指針位置向后回退一種統(tǒng)計(jì)位置。使用BACKSPACE語(yǔ)句完成文獻(xiàn)指針回退操作。一般格式:BACKSPACE{<設(shè)備號(hào)>∣([Unit=]<設(shè)備號(hào)>∣ERR=<錯(cuò)誤轉(zhuǎn)移>∣IOSTAT=<犯錯(cuò)狀態(tài)>)}
第16頁(yè)外部設(shè)備:鍵盤、顯示屏、終端、打印機(jī)、串行口、并行口等設(shè)備。象使用外部文獻(xiàn)同樣使用這些外部設(shè)備。每一種外部設(shè)備都有一種設(shè)備名,類似于文獻(xiàn)名。如表10-1所示。下面給出某些使用外部設(shè)備OPEN語(yǔ)句:!連接一臺(tái)打印機(jī),程序中可從打印機(jī)輸出數(shù)據(jù),設(shè)備號(hào)為1OPEN(UNIT=1,FILE=‘PRN’)!連接一種串行口,程序中可從串行口輸出數(shù)據(jù),設(shè)備號(hào)為2OPEN(UNIT=2,FILE=‘COM1’)!連接一種并行口,程序中可從并行口輸出數(shù)據(jù),設(shè)備號(hào)為3OPEN(UNIT=3,FILE='LPT1')設(shè)備名外部設(shè)備或部件CONConsole(終端、控制臺(tái)、標(biāo)準(zhǔn)輸出設(shè)備)PRNPrinter(打印機(jī))COM1SerialPort#1(串行口1)COM2SerialPort#2(串行口2)LPT1ParallelPort#1(并行口1)LPT2ParallelPort#1(并行口2)NULNULL(NULL設(shè)備,忽視輸入輸出操作)AUXSerialPort#1(串行口1)LINE1SerialPort#1(串行口1)USER1StandardOutput(標(biāo)準(zhǔn)輸出)ERR1Standarderror(標(biāo)準(zhǔn)錯(cuò)誤信息)第17頁(yè)有格式次序文獻(xiàn):具有“FORMATTED”和“SEQUENTIAL”屬性文獻(xiàn)。有格式次序文獻(xiàn)可用任何文本編輯器或OPEN、WRITE語(yǔ)句創(chuàng)建。屬于可視化文獻(xiàn)。有格式次序文獻(xiàn)是由若干文本行組成,每個(gè)文本行是一種統(tǒng)計(jì),統(tǒng)計(jì)由回車符(CR)和換行符(LF)結(jié)束,回車符CR(ODH)和換行符LF(OAH)是統(tǒng)計(jì)結(jié)束標(biāo)志。每個(gè)統(tǒng)計(jì)長(zhǎng)度(字節(jié)數(shù),每個(gè)字符占一種字節(jié))能夠不一樣,默認(rèn)最大統(tǒng)計(jì)長(zhǎng)度為132個(gè)字節(jié),可通過(guò)RECL選項(xiàng)指定最大統(tǒng)計(jì)長(zhǎng)度。有格式次序文獻(xiàn)讀寫操作與鍵盤、顯示屏讀寫操作類似,不一樣是需要用OPEN語(yǔ)句打開文獻(xiàn),指定設(shè)備號(hào),在READ和WRITE語(yǔ)句中指定設(shè)備號(hào),而不是星號(hào)“*”。第18頁(yè)P(yáng)ROGRAMchaper1271INTEGER::A(10),sum=0,ave!打開一數(shù)據(jù)文獻(xiàn),先用文本編輯器創(chuàng)建,默認(rèn)是一種有格式次序存取文獻(xiàn)!數(shù)據(jù)文獻(xiàn)中有10個(gè)整數(shù),第1行5個(gè),第2行2個(gè),第3行3個(gè)!數(shù)據(jù)文獻(xiàn)有3個(gè)統(tǒng)計(jì)行,每個(gè)統(tǒng)計(jì)行長(zhǎng)度不一樣OPEN(11,FILE='input1.dat')READ(11,*)(A(I),I=1,10)!按表控格式從數(shù)據(jù)文獻(xiàn)中輸入10個(gè)數(shù)!READ(11,*)A(1),A(2),A(3),A(4),A(5)!可用3個(gè)READ語(yǔ)句分3個(gè)行輸入!READ(11,*)A(6),A(7)!READ(11,*)A(8),A(9),A(10)CLOSE(11)DOI=1,10sum=sum+A(I)ENDDOave=sum/10!打開一種最大統(tǒng)計(jì)長(zhǎng)度為25有格式次序存取文獻(xiàn)OPEN(12,FILE='input2.dat',RECL=25)WRITE(12,"('10個(gè)數(shù)之和為:',I5)")sum!輸出一種統(tǒng)計(jì)行,統(tǒng)計(jì)長(zhǎng)度為19WRITE(12,“(‘10個(gè)數(shù)平均值為:',I5)")ave!輸出一統(tǒng)計(jì)行,統(tǒng)計(jì)長(zhǎng)度為21WRITE(*,*)'程序運(yùn)行正常結(jié)束。'END第19頁(yè)具有“FORMATTED”和“DIRECT”屬性文獻(xiàn)稱為有格式直接存取文獻(xiàn)。有格式直接存取文獻(xiàn)可用文本編輯器創(chuàng)建,也可在程序中通過(guò)OPEN和WRITE語(yǔ)句創(chuàng)建。有格式直接存取文獻(xiàn)可用文本編輯器顯示、瀏覽、修改、創(chuàng)建,文獻(xiàn)中不能用回車符和換行符分隔統(tǒng)計(jì)。有格式直接存取文獻(xiàn)是由若干文本段組成,每個(gè)文本段是一種統(tǒng)計(jì),統(tǒng)計(jì)沒(méi)有結(jié)束標(biāo)志和行概念,每個(gè)統(tǒng)計(jì)長(zhǎng)度(字節(jié)數(shù),每個(gè)字符占一種字節(jié))相同,可通過(guò)RECL選項(xiàng)指定統(tǒng)計(jì)長(zhǎng)度。
有格式直接存取文獻(xiàn)不能按次序存取方式打開,進(jìn)行次序存取,而只能按直接存取方式打開,按統(tǒng)計(jì)號(hào)任意存取統(tǒng)計(jì)。
程序示例。第20頁(yè)P(yáng)ROGRAMchaper1272INTEGER::A(10)=(/5,7,4,8,12,2,10,3,9,11/)INTEGER::sum=0,ave!打開一數(shù)據(jù)文獻(xiàn),設(shè)置一種有格式直接存取文獻(xiàn),將10個(gè)數(shù)分2個(gè)統(tǒng)計(jì)寫入文獻(xiàn)。!數(shù)據(jù)文獻(xiàn)生成2個(gè)統(tǒng)計(jì),每個(gè)統(tǒng)計(jì)行長(zhǎng)度相同,統(tǒng)計(jì)長(zhǎng)度為25OPEN(11,FILE='input21.dat',FORM='FORMATTED',ACCESS='DIRECT',RECL=25)WRITE(11,"(5I5)",REC=1)(A(I)+10,I=1,5)!按格式說(shuō)明將頭5個(gè)數(shù)寫入第1個(gè)統(tǒng)計(jì)WRITE(11,"(5I5)",REC=2)(A(I)+10,I=6,10)!按格式說(shuō)明將后5個(gè)數(shù)寫入第2個(gè)統(tǒng)計(jì)READ(11,"(5I5)",REC=2)(A(I),I=6,10)!按格式說(shuō)明從第2個(gè)統(tǒng)計(jì)中讀取后5個(gè)數(shù)READ
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 風(fēng)險(xiǎn)管理與評(píng)估試題及答案
- 《世界古代建筑欣賞:大二藝術(shù)史教學(xué)教案》
- 《太陽(yáng)系八大行星的特點(diǎn):四年級(jí)地理教學(xué)教案》
- 新員工入職流程及操作系統(tǒng)使用指南
- 產(chǎn)品分銷與代理業(yè)務(wù)合作協(xié)議內(nèi)容
- 《走進(jìn)物理世界:高一物理實(shí)驗(yàn)課程教案》
- 鄉(xiāng)村旅游農(nóng)業(yè)開發(fā)方案
- 年度市場(chǎng)活動(dòng)策劃與執(zhí)行報(bào)告
- 公司采購(gòu)協(xié)議附件書
- 采購(gòu)居間合同例文
- 2025年三八婦女節(jié)校長(zhǎng)致辭-以柔韌破萬(wàn)鈞以丹心育桃李
- 《騎鵝旅行記》名著閱讀讀課件
- 2025年浙江省建筑安全員C證考試(專職安全員)題庫(kù)及答案
- 2025年健身教練合同協(xié)議樣本
- 2025年湖南商務(wù)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)必考題
- 中儲(chǔ)糧黑龍江分公司招聘考試試卷2023
- 化學(xué)實(shí)驗(yàn)室安全職責(zé)分配
- 9 楓樹上的喜鵲 【知識(shí)精研】語(yǔ)文二年級(jí)下冊(cè) 統(tǒng)編版
- 2025年哈爾濱鐵道職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 旅游景區(qū)旅游安全風(fēng)險(xiǎn)評(píng)估報(bào)告
- YB/T 6328-2024 冶金工業(yè)建構(gòu)筑物安全運(yùn)維技術(shù)規(guī)范(正式版)
評(píng)論
0/150
提交評(píng)論