通过富文本框实现日志文件自动存储功能

程序运行过程中,不断输出打印信息,可以帮助排除错误,了解程序运行流程,获悉中间结果。几乎是每个程序必备的功能。为此,实现本功能的主要思路就是,增加一个富文本框控件,以及一个分钟级的定时器,通过一个字符串行计数器,在定时器里不断比较文本行数量的变化,把最新加入的文本行自动加入到日志文件的末尾,实现日志的自动保存。
虽说功能不算复杂,但是设计还是比较巧妙,可以简单快捷的应用到任何程序中去。
首先是定义一个计数器。
private int LogBoxLength = 1;
然后,在定时器里加入以下几行代码即可:
var length = logBox.Lines.Length - LogBoxLength;
if (OneSecond>60 && length>0)
{//利用定时器保存日志文件里的新增内容
var lines = new string[length];
for (int i = 0; i < length; i++)
{//避免把空行加入文件,还会导致空行改写后的内容被丢失,所以这里要-1并且logboxlenth初值=1,这是个技巧
lines[i] = logBox.Lines[LogBoxLength + i-1];
}
File.AppendAllLines(“result.txt”, lines);
LogBoxLength = logBox.Lines.Length;
}
正如注释里所说:通过计数器初始值置1而不是零,是为了避免文本框内容从无到有时会发生前溢出错误,而在获取新追加的日志文本行时文本框计数器减1,是为了避免在使用LogBox.AppendText(“xxxxxx\n”)时使用的换行符号,把空行加入日志文件,却丢掉了上一个空行被改写后的真实内容。这也正是这段代码的巧妙之处,用最少的代码,简单明了地实现了复杂的功能。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值