请教string转换pchar的问题

ehappy 2008-01-02 09:43:20
procedure TFrm_Main.WriteLog(LogStr: string);
.......
LogStr := FormatDateTime('yyyy"/"mm"/"dd hh:nn:ss ', Now) + LogStr + #13#10;
//2007 4 9 修改日志内容日期格式
FFileStream.Write(PChar(LogStr)^, Length(LogStr));

程序运行时有时会出现漏记的问题,概率约在万分之一,我找不出其他的问题,会不会这里转换出问题了,请大家指点
...全文
84 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengfengpei 2008-01-06
  • 打赏
  • 举报
回复
LogStr := FormatDateTime('yyyy"/"mm"/"dd hh:nn:ss ', Now) + LogStr + #13#10;
LogStr会不停地增长,对吗?
代码没有问题

测试:
stream := TFileStream.Create('C:\t.txt', fmCreate );
for i := 0 to 10000 do begin
LogStr := FormatDateTime('yyyy"/"mm"/"dd hh:nn:ss ', Now) + #13#10;
//2007 4 9 修改日志内容日期格式
stream.Write(Pointer(LogStr)^, Length(LogStr));
end;

stream.Free;
僵哥 2008-01-02
  • 打赏
  • 举报
回复
建议楼主找别的地方的问题,看看具体是哪里出现了内存重复释放或者越界操作。
stherix 2008-01-02
  • 打赏
  • 举报
回复
写完Stream记得Flush一下

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧