思想:我們在寫日志文件的時候習慣將所有的日志文件全部Add到一個List鏈表裡面,然後用定時器定時從List鏈表中取數據寫文件。
所以我使用TStringList,將所以日志Add到TStringList裡面,然後用定時器從TStringList裡面取數據寫日志。
procedure Tfoffertool.OnReadListTimer(Sender: TObject);
var
sysDir : string;
strMsg : string;
logfile: string;
begin
//創建日志文件
sysDir:=extractfilepath(application.ExeName);
logfile:=formatdatetime('yyyyy-mm-dd', Now()) + '.log'; // 在字符串前加上日期
if not directoryexists(sysdir) then
createdir(sysdir);
AssignFile(mylog,logfile);
if fileexists(sysDir+logfile) then
append(mylog)
else
rewrite(mylog);
while ((mylogList.Count) > 0) do
begin
strMsg := mylogList.Text; //從List裡面讀取數據這個是讀取塊
//好像也可以這樣每次讀取一行:
//strMsg := mylogList[0];
//mylogList.Delete(0);
mmolog.Text := mmolog.Text + strMsg; //將數據顯示在TMemo控件中
mylogList.Clear;
Writeln(mylog,strMsg); //寫日志裡
end;
CloseFile(mylog); //關閉文件流
end;