處理的檔案都是
循序檔
(sequential files),
即檔案中每一
記錄
都是循序寫入的, 而且也必須循序讀出。
這表示要在循序檔中讀出一特定記錄, 之前所有記錄必須先讀出。
另一種檔案稱為
直接接達檔
(direct-access files),
檔案中每一記錄可以直接讀寫, 通常是經由記錄號碼。
直接接達檔中所有記錄, 其長度必須相同, 而且不能更動。
循序檔中的記錄長度可 以變動。
檔案也可分成
有格式
和
無格式
兩種。
目前提及的檔案都是有格式的。
有格式的檔案中記錄所含資訊是用外顯字元的形式表示,
而無格式的檔案中記錄則是用 二進形式表示。
因此無格式的檔案中記錄的確實形式, 隨機器而有所不同。
11.1 OPEN, CLOSE, 和 INQUIRE 敘述
在第六章中提及,
在使用檔案輸入或輸出之前,檔案必須先標明所用的單位規定式號碼。 OPEN
敘述的一般形式為
OPEN
(
open-list
)
其中
open-list
單位規定式
大多也包括
FILE
= 子句,列出檔案名稱
STATUS
=子句,規定檔案的新舊。
也可包括選自下列的其他規定式:
IOSTAT
=子句,指示檔案是否順利打開。
=子句,規定若在開檔發生錯誤時,所要執行檔案的號碼。
ACCESS
=子句,規定檔案是循序或直接。
FORM
=子句,規定檔案是有格式或無格式的。
RECL
=子句,規定直接接達檔的記錄長度。
BLANK
=子句,規定數值欄中的空白是當做 0 或是略過。
單位規定式
單位規定式的形式為,
UNIT =
integer-exp
integer-exp
其中
integer-exp
的數值是零或正整數, 指定檔案的單位號碼。
READ 或 WRITE 敘述使用此單位號碼讀寫其連接的檔案。
使用第二種形式時,
integer-exp
必須是
open-list
的第一項。
FILE = 子句
FILE = 子句的形式為,
FILE =
char-exp
其中
char-exp
(略去末尾的空白)是單位號碼所連接的檔案名稱。
STATUS = 子句
STATUS = 子句的形式為,
STATUS =
char-exp
其中
char-exp
(略去末尾的空白) 之值是下列之一:
OLD 舊檔, 必須用 FILE = 子句規定檔名。
NEW 新檔, 必須用 FILE = 子句規定檔名。
SCRATCH 草稿檔, 必須不用檔名。
UNKNOWN 未知檔, 以上皆非。 若省略 STATUS = 子句, 則預設為未知檔。
IOSTAT = 子句
FILE = 子句的形式為,
IOSTAT =
int-var
其中
int-var
之值為零或正整數。 開檔順利, 則為零。
否則為正整數, 代表系統手冊中的錯誤信文之號碼。
ERR = 子句
ERR = 子句的形式為,
ERR =
n
其中
n
規定若在開檔發生錯誤時,所要執行檔案的號碼。
ACCESS = 子句
ACCESS = 子句的形式為,
ACCESS =
char-exp
其中
char-exp
(略去末尾的空白) 之值是下列之一:
SEQUENTIAL 規定檔案是循序
DIRECT 規定檔案是直接
若省略此子句, 則預設為循序檔。
FORM = 子句
FORM = 子句的形式為,
FORM =
char-exp
其中
char-exp
(略去末尾的空白) 之值是下列之一:
FORMATTED 規定檔案是有格式的
UNFORMATTED 規定檔案是無格式的
若省略此子句, 則循序檔預設為有格式的, 而直接檔預設為無格式的。
RECL = 子句
RECL = 子句的形式為,
RECL =
int-exp
其中
int-exp
之值為正。 此子句只在直接接達檔使用,
規定其記錄長度。 在有格式檔, 指的是 該檔每一記錄的字元數,
在無格式檔, 則視處理器(processor)而定。
BLANK = 子句
BLANK = 子句的形式為,
BLANK =
char-exp
其中
char-exp
(略去末尾的空白) 之值是下列之一:
ZERO 規定數值欄中的空白是當做 0。
NULL 規定略過數值欄中的空白。
若數值欄中全是空白, 則不論 ZERO 或 NULL, 都當做 0。
CLOSE 敘述
用以切斷檔案和單位號碼的連接。 CLOSE
敘述的一般形式為
CLOSE
(
close-list
)
其中
close-list
單位規定式
也可包括選自下列的其他規定式:
IOSTAT
=子句,指示檔案是否順利關閉。
=子句,規定若在關檔發生錯誤時,所要執行檔案的號碼。
STATUS
=子句,規定檔案要保留或刪除。
STATUS = 子句的形式為,
STATUS =
char-exp
其中
char-exp
(略去末尾的空白) 之值是下列之一:
KEEP 規定關檔後保留該檔。
DELETE 規定關檔後刪除該檔。
SCRATCH 檔不可用 KEEP。 若省略 STATUS = 子句, 則刪除草稿檔, 保
留其他類型的檔案。
檔案用CLOSE 敘述關閉後, 可以再用OPEN敘述打開,
可用同一單位號碼, 也可用不同的 號碼。 所有未關閉的檔案,
在程式終止執行時(由於發生錯誤而導致的不正常終止除外),
都自動關閉。
INQUIRE 敘述
INQUIRE 敘述
用以探查檔案或其單位號碼的性質, 其一般形式為