繁体   English   中英

Delphi Tstringlist,写文件同步

[英]Delphi Tstringlist, write file synch

我用 tstringlist 做了一个非常简单的日志。 我将其写入文件:

pLog.SaveToFile(FileName);

某处存在错误,我的计算机已关闭。 之后,我找不到我的日志文件。 该文件可能以异步模式保存。 有没有办法在执行之前等待 go 的写入?

谢谢,阿尔贝托

如果savetofile调用在程序结束时,程序异常终止,那么这个调用可能不会执行。 我使用一种日志记录机制,每次调用日志都会打开日志文件,写入日志文本和时间,刷新然后关闭日志文件。 这样,即使程序异常终止,也可以保证将日志文本写入文件。

这是代码:

procedure TMainForm.Log (const s: string);
var
 f: textfile;

begin
 assignfile (f, logfilename);
 {$I-}  // yes, I know: modern programming style requires a try/except block
 append (f);
 if ioresult <> 0 then rewrite (f);
 {$I+}
 writeln (f, datetostr (now), ' ', timetostr (now), ' ', s);
 flush (f);
 closefile (f);
end;

TStringList.SaveToFile同步操作。

问题的最明显原因是:

  1. 您没有调用TStringList.SaveToFile
  2. 文件名无效(可能路径不存在)。
  3. 文件名位于您的用户没有写入权限的文件夹中(例如程序文件文件夹)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM