delphi怎样写日志文件?就是我的串口每收到一次数据就写到文本文件里?

本文讨论了使用Delphi进行文件操作的方法,特别是如何将串口接收到的数据追加到文本文件中,避免覆盖原有内容,并提供了实用的代码示例。
来自: wishme3, 时间: 2005-06-22 15:23:00, ID: 3110622
var
CommStr:string;
begin
CommStr:=MyComm.readcomm;//假如CommStr是每次收到的串口数据
//现在要求把CommStr的数据写到一个文本文件里,保存到c:/log.txt中
end;
谁有代码吗?

来自: xianguo, 时间: 2005-06-22 15:51:51, ID: 3110640
var F: TextFile;

begin
AssignFile(F, c:/log.txt');
Rewrite(F);
Writeln(F, 'Just created file with this text in it...');
CloseFile(F);
end;

来自: luckysw, 时间: 2005-06-22 15:56:34, ID: 3110655
唉,来晚了
var F: TextFile;
begin
AssignFile(F, c:/log.txt');
Append(F);
Writeln(F, 'Just created file with this text in it...');
CloseFile(F);
end;
给分吧

来自: wishme3, 时间: 2005-06-22 16:18:23, ID: 3110688
这样每次文件里只会留下最后一次的数据啊

来自: wishme3, 时间: 2005-06-22 16:26:51, ID: 3110703
比如:
//写文件
procedure Tform1.writeToFile(s:string);
var F:TextFile;
begin
assignfile(f,'c:/cgp.txt');
try
rewrite(f);
writeln(f,s);
finally
closefile(f);
end;
end;

//调用
procedure Tform1.Button2Click(Sender: TObject);
begin
writeToFile('ss');
end;

按10下Button2里面怎么只有一行数据?

来自: wishme3, 时间: 2005-06-22 17:32:56, ID: 3110790
知道了
另外:如果长年累月往该文件写数据,数据量又大,那不是文件会非常大?
我想知道大家是怎么处理这个问题的

来自: xianguo, 时间: 2005-06-22 17:37:40, ID: 3110795
你可以每天一个文件(根据日期命名)

来自: shangchao, 时间: 2005-06-22 17:41:38, ID: 3110802
下面是我的程序中一段,把文件存为用','分隔的文本文件.

if FileExists('shang_baud.txt') then
begin
AssignFile(F,'shang_baud.txt');
append(F);
for i:=0 to 4 do write(f,stringgrid1.Cells[i,stringgrid1.RowCount-1],',');
writeln(f,stringgrid1.Cells[5,stringgrid1.RowCount-1]);
CloseFile(F);
end else
begin
AssignFile(F,'shang_baud.txt');
rewrite(F);
for i:=0 to 4 do write(f,stringgrid1.Cells[i,stringgrid1.RowCount-1],',');
writeln(f,stringgrid1.Cells[5,stringgrid1.RowCount-1]);
CloseFile(F);
end
时间长了的文件,可以用时间作为文件名,一个月建一个文件.

来自: sleeves, 时间: 2005-06-23 0:11:29, ID: 3111060
procedure WriteLog(filename: string; buff: string);
var
logfile: Textfile;
begin
//文件锁
LockFile := TCriticalSection.Create;
LockFile.Acquire;
try
assignfile(logfile, filename);
if FileExists(filename) then
append(logfile)
else
rewrite(logfile);

writeln(logfile, '[' + formatdateTime('yyyy-mm-dd hh:mm:ss:zzz', Now) + '] '
+ buff);
closefile(logfile);
finally
LockFile.Release;
end;
end;

http://www.kfdoc.com/delphibbs2005/311/3110622.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值