50 likes | 144 Views
應用電腦. (Applied Computer Science). 授課老師 : 游政谷. ComputerScience(6). Fortran 的檔案. Open 敘述. Program example Implicit none Open(10, file=‘hello.dat’) Write(10,*)’Hello, world’ Stop End. 此程式將’ Hello, world’ 這幾個字寫到檔案 hello.dat 裡 其中 “ 10” 為檔案的編號.
E N D
應用電腦 (Applied Computer Science) 授課老師: 游政谷 ComputerScience(6)
Fortran的檔案 Open 敘述 Program example Implicit none Open(10, file=‘hello.dat’) Write(10,*)’Hello, world’ Stop End 此程式將’Hello, world’這幾個字寫到檔案hello.dat裡 其中 “10” 為檔案的編號
Open(number, file=‘filename’, form=‘…’, status=‘…’, access=‘…’, recl=length, err=label, iostat=ivar) number: 檔案的編號, 一定要為整數, 但要避開1,2,5,6. 因為2,6為內定螢幕輸出位置, 而1,5為內定螢幕 (即鍵盤) 輸入位置 File=‘filename’: 指定開啟檔案的名稱 Form=‘formatted’ or ‘unformatted’ 當Form=‘formatted’時, 表示檔案的儲存使用[文字檔]的型式 當Form=‘unformatted’, 表示檔案的儲存使用[二進位檔]的型式 (default 為 ’formatted’) (用二進位檔來儲存資料有兩個好處, 一為讀取較快速, 二為叫節省記憶體空間) Status=‘new’ or ‘old’ or ‘unknown’ 當status=‘new’時, 表示檔案原本不存在, 透過open敘述將產生此新檔案 當status=‘old’時, 表示檔案原本就存在 當status=‘unknown’時, 表示檔案可能存在也可能不存在 (See example program in the class)
Access=‘sequential’ or ‘direct’ 當access=‘sequential’時, 表示讀取動作會以[循序]的方法來作讀取 當access=‘direct’時, 表示讀取動作可以任意指定位置, 即所謂[直接讀取檔] (default 為 ‘sequential’) Recl=length: 設定檔案中每一小單元的長度, 這一欄只在[直接讀取檔]才有必要 length之單位為byte Err=lable: 當開啟檔案錯誤時, 程式可跳到label所指的行代碼處繼續執行 Iostat=ivar: 表示會把一個整數值設定給後面的整數變數, 數值會有三種情形: Ivar>0 ------ 表示讀取動作發生錯誤 Ivar=0 ------ 表示讀取動作正常 Ivar<0 ------ 表示讀取檔案到終點
Write or read (unit=number, fmt=format_label, rec=record, err=errlabel, end=endlabel) Unit = number: 指定要輸出(入)的位置或檔案編號 Fmt = format_label: 用來指定輸出(入)格式 Rec = record: 在直接讀取的檔案中, 用來設定所要讀寫檔案的位置 Err = errlabel: 讀寫過程中發生錯誤, 轉移到某個行代碼來繼續執行程式 End = endlabel: 讀寫到檔案尾巴時, 轉移到某個行代碼來繼續執行程式 Rewind 敘述 rewind(number): 將檔案的讀寫位置回歸到檔案的開頭 (see example program in the class) Close 敘述 Close(number): 將檔案關閉, 不再進行讀寫的動作