最近在处理log日志文件,该文件的纪录是实时动态生成的。(由硬件通过com口传过来的)
我想限制文件的纪录数,比如保留最近的200条记录,不知道如何操作?如果用textsteam和随机文件的替换法(用.tmp)不知道会不会漏纪录?文本格式如下:日期时间加一个16进制数11/28/2003 15:06:34 0E
11/28/2003 15:06:36 01
11/28/2003 15:19:36 0F
11/28/2003 15:20:27 0E
11/28/2003 15:20:30 01
11/28/2003 15:27:12 0F
11/28/2003 15:28:02 0E
11/28/2003 15:28:05 01
11/28/2003 16:21:19 41
11/28/2003 16:21:51 00
11/28/2003 16:36:31 41
11/28/2003 16:36:53 00
11/28/2003 16:39:06 0F
11/28/2003 16:39:22 0E
11/28/2003 16:39:22 01

解决方案 »

  1.   

    用一个变量计数不行吗?
    启动的时候统计一下*.log的记录数,记录在记录数变量中,
    以后每次加入日志时检查记录数,如果大于200就移除最旧的一条,
    如果小于200,每成功加入一条日志,计数加1.
      

  2.   

    1 将日志文件逐行加入集合TEMP中
    2 将TEMP集合中从TEMP.COUNT-199 到TEMP.COUNT 项元素写入新的文件
      

  3.   

    to  YFY(云飞扬) 
    请问用什么命令移除最旧的一条?(文本文件)
      

  4.   

    to northwolves(野性的呼唤) 
    如果用temp不知道会不会漏纪录?
      

  5.   

    参考下面的代码,希望对你有所帮助:
    im coll As New Collection
    Dim num As Long
    Private Sub Command1_Click()
    Dim avg As Double
    avg = 0
    Dim a(1 To 200) As String
    For i = 1 To 200
    a(i) = coll.Item(i)
    avg = avg + Val(coll.Item(i))
    Next
    MsgBox "数据:" & Join(a(), ",") & vbCrLf & vbCrLf & "均值:" & avg / 200
    End SubPrivate Sub Command2_Click()
    num = num + 1
    coll.Remove 1
    coll.Add num
    End SubPrivate Sub Form_Load()
    For i = 1 To 200
    coll.Add i
    Next
    num = 200
    End Sub