delphi 日志 class

文本文件是由若干行組成的,若干個字符串組成一行,一行的結(jié)尾由回車換行符表示。如果對文本文件進行操作,則首先應(yīng)通過調(diào)用AssignFile過
程建立文件變量與外部文件的聯(lián)系,并且使用Reset或ReWrite或Append方法打開。由于文本文件是以行為單位進行讀寫操作的,并且每一行的長
度不一定相同,所以不能計算出指定行在文件中的準確位置,因此對于文件只能順序的讀寫。要對文件進行讀寫操作,必須相應(yīng)的對文件進行以讀或?qū)懙姆绞酱蜷_,
也就是對一個文本文件只能單獨進行讀或?qū)懙牟僮鳎荒芡瑫r進行。
1、 以添加方式打開文件(Append)
通過調(diào)用函數(shù)Append可打開一個已經(jīng)存在的文件以便在文件末尾添加文本。如果在文件最后的128個字節(jié)塊中,存在字符〈ctrl〉+〈z〉(ASCII26),那么文件將在字節(jié)處插入,并且覆蓋該字符。
Append過程的聲明如下:
procedure Append(var F:text);
其
中F是一個任意文件類型的變量,并且必須同用AssignFile函數(shù)打開的外部文件相聯(lián)系,如果指定的文件不存在,則會產(chǎn)生錯誤,如果指定的文件已經(jīng)打
開,則先關(guān)閉再重新打開。當前文件的位置設(shè)置在文件末尾。如果分配給F的是一個空名字,則在調(diào)用Append函數(shù)后,文件變量(F)將同將同標準輸出文件
建立聯(lián)系。
2 、文本文件的讀取和寫入
文本文件通過調(diào)用過程Reset后以只讀方式打開后,就可以使用Read或Readln過程來讀取文件數(shù)據(jù)了。文本文件通過調(diào)用Write或Writeln過程來打開一文件后就可以使用或過程來寫入數(shù)據(jù)。
(1) 用Read過程讀取數(shù)據(jù)
通過調(diào)用Read過程可以從文本文件中讀取或數(shù)字。其聲明如下:
Procedure Read([var F:text;]v1 [,v2,…,vn,]);
其
中F是一個文件變量,v1 ,v2,…,vn用于存儲讀取的數(shù)據(jù),其必須為相同的類型。當v1
,v2,…,vn定義為字符串型或字符型變量時,則Read過程將按照定義的長度讀取字符。當v1
,v2,…,vn定義為整數(shù)或?qū)崝?shù)變量時,則Read過程將以空格作為分隔符,如果在數(shù)字中出現(xiàn)逗號、分號或其他字符將產(chǎn)生異常。
(2) 用Readln過程讀取數(shù)據(jù)
通過調(diào)用Readln 過程可以從文本文件中讀取字符串、字符或數(shù)字,直到一行結(jié)束。其聲明如下:
Procedure readln([var F:text;]v1 [,v2 ,…]);
其中F是一個文件變量,v1 ,v2,…,vn用于存儲讀取的數(shù)據(jù)
(3) 用Write過程寫入數(shù)據(jù)
通過調(diào)用Write過程可以向文件中寫入數(shù)據(jù)。其聲明如下:
Procedure Write([var F:text;]p1[,p2,…]);
其中F是一個文件變量,p1 ,p2,…,pn用于存儲寫入的數(shù)據(jù)
(4) Writeln用過程寫入數(shù)據(jù)
通過調(diào)用Writeln過程可以向文件中寫入一行數(shù)據(jù),并在結(jié)尾處輸入回車符。聲明如下:
Procedure Writeln([var F:text;]P1[,P2,…]):
3、 文件的基本操作
對文本文件進行操作的基本函數(shù)與過程見表:
方法 說明
Procedure AssignPrn(var F:text); 建立文本文件同打印機的聯(lián)系
Function Eoln(var F:text):Boolean; 檢測文件指針是否指向行尾
Procedure Flush(var F:text); 清空以輸出方式(ReWite或Append)打開的文件緩沖區(qū),以確保寫入的文件字符都被寫入外部文件
Function SeekEof(var F:text): boolean; 返回文件尾狀態(tài)
Function SeekEoln(var F:text):boolean; 返回文件行尾狀態(tài)
Procedure SetTextBuf(var F :text;var buf [;size:integer]); 設(shè)置文件緩沖區(qū)