想编一个小程序,里面有一个功能,用来记录系统运行时间和次数的,程序运行后( Form_Load())自动在D盘生成一个SYS.TXT文件(如果文件已存在就是更新),自动换行,并在首行记录一下当前时间和运行的累记次数,自动保存,要怎么写代码?3,2009.6.9 10:10
2,2009.6.8 5:25
1,2009.6.5 8:12如果 “,”前面的累计数字这种方式不好写的话,那么就只要一个最终累计也行3
2009.6.9 10:10
2009.6.8 5:25
2009.6.5 8:12谢谢!!!!!!!

解决方案 »

  1.   

    还有,设定一个文本文件的尺寸限制,比如当 sys.txt 大于2M后自动清空时间信息重新记录(不过最好还保留运行累计的数量)
      

  2.   

    作为顺序文件的写入,计算累计行数有些难度,以下代码能在窗体运行时将日期和时间按顺序写入文本文件。Private Sub Form_Load()
        Open "D:\sys.txt" For Append As #1
            Print #1, Format(Date, "YYYY.M.D") & " " & Time$
        Close #1
    End Sub
      

  3.   

    Option Explicit
        Dim l As Integer
        Dim str As String
        Dim str1 As String
    Private Sub Form_Load()
        On Error GoTo useErr
        Open "D:\sys.txt" For Input As #1
            Do While Not EOF(1)
                Input #1, str1
                str = str & str1 & Chr(13) & Chr(10)
                l = l + 1
            Loop
        Close
        Open "D:\sys.txt" For Append As #1
            Print #1, l + 1 & "," & Format(Date, "YYYY.M.D") & " " & Time$
        Close #1
        Exit Sub
    useErr:
        Open "D:\sys.txt" For Append As #1
            Print #1, l + 1 & "," & Format(Date, "YYYY.M.D") & " " & Time$
        Close #1
    End Sub
      

  4.   

    private sub form_load()
       1.取当前系统时间
       2.读文件sys.txt第一行取累计次数和时间
       3.打开一个新临时文本文件,循环读sys.txt各行,重新写到新临时文件(根据当前系统时间是否等于第二步 取的时间更新第一行)
       4.删除sys.txt,重命名新临时文件为sys.txt
    end sub另,最好根据文本文件的行数来决定是否重新计数.没时间写具体代码,一会要出去办事了,有时间回来再写
      

  5.   

    LZ:我给出的代码,记录一次的文件长度增加不超过30字节,当l的值超过其定义的数据类型Integer的上限32677时,代码运行必然报错(溢出错误),你可依据l的值来修改你文件。
      

  6.   

    Option Explicit
        Dim l As Integer
        Dim strSj As String
        Dim str1 As String
        Dim pSj As String
    Private Sub Form_Load()
        On Error GoTo useErr
        Open "D:\sys.txt" For Input As #1
            Do While Not EOF(1)
                Line Input #1, str1
                strSj = strSj & str1 & Chr(13) & Chr(10)
                l = l + 1
            Loop
        Close
        Text1 = strSj
        pSj = (l + 1) & "," & Format(Date, "YYYY.M.D") & " " & Time$
        Open "D:\sys.txt" For Append As #1
            Print #1, pSj
        Close #1
        Exit Sub
    useErr:
        Open "D:\sys.txt" For Append As #1
            Print #1, pSj
        Close #1
    End Sub
      

  7.   

    给个方法:
    1\获取注册表上次登记累加值用:
     GetSetting(appname, section, key[, default])
    '2\写文件函数
    Public Function writeFile(as_filename As String, as_writeStr As String)
    On Error GoTo errINFO
        Dim fs, f
    '获取文件大小
     If FileLen(as_filename ) > 2048000 Then'文件大于2M就删掉
    'Kill删除指定文件
      Kill (as_filename )
    end if 
    '写文件
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set f = fs.OpenTextFile(as_filename, ForAppending, TristateTrue)
          f.WriteLine (as_writeStr)
          f.Close
          Exit Function
    errINFO:
    MsgBox Err.Description
    End Function'3\写完数据后用 SaveSetting 保存最后一次的记录数
    SaveSetting appname, section, key, setting 
    具体代码你自己写
      

  8.   

    Option Explicit
        Dim l As Integer
        Dim strSj As String
        Dim str1 As String
        Dim pSj As String
    Private Sub Form_Load()
        On Error GoTo useErr
        Open "D:\sys.txt" For Input As #1
            Do While Not EOF(1)
                Line Input #1, str1
                strSj = strSj & str1 & Chr(13) & Chr(10)
                l = l + 1
            Loop
        Close
        Text1 = strSj
        pSj = (l + 1) & "," & Format(Date, "YYYY.M.D") & " " & Time$
        Open "D:\sys.txt" For Append As #1
            Print #1, pSj
        Close #1
        Exit Sub
    useErr:
        pSj = "1" & "," & Format(Date, "YYYY.M.D") & " " & Time$
        Open "D:\sys.txt" For Append As #1
            Print #1, pSj
        Close #1
    End Sub
      

  9.   


    我加了句    If l > 1000 Then
        l = 0
        Kill "d:\sys.txt"
        End If基本上已经可以满足我的需要了,谢谢你