现在要生成一个这样的日志文件:就是最新的日志必须总是放在最上面
一般情况下都是在文件的末尾追加日志,不知道有什么方法或是有什么函数可以在一个文本文件的顶部而不是末尾追加数据?
而且日志文件的条数是固定的,也就是超过了一定条数的日志信息,必须把最旧的那些删除掉
假如说总数是4条,那么就是这个格式:4,3,2,1
然后接着往下追加日志应该是:5,4,3,2
一般情况下都是在文件的末尾追加日志,不知道有什么方法或是有什么函数可以在一个文本文件的顶部而不是末尾追加数据?
而且日志文件的条数是固定的,也就是超过了一定条数的日志信息,必须把最旧的那些删除掉
假如说总数是4条,那么就是这个格式:4,3,2,1
然后接着往下追加日志应该是:5,4,3,2
open 临时文件 as #1
open 日志文件 as #2
print #1,"最新一条日志"
do while(not eof(2) and i<max-1)
i=i+1
readline #2,buffer
writeline #1,buffer
loop
close(1)
close(2)
kill 日志文件
name 临时文件,日志文件
Dim LogBuffer() As String
Dim iFileNo As Long, iLine As Long, iLoop As Long
ReDim LogBuffer(iLogLines - 1)
iLine = 0
LogBuffer(0) = sLog
iFileNo = FreeFile()
On Error Resume Next
Open sFile For Input As iFileNo
If Err = 0 Then
Do While Not EOF(iFileNo) And (iLine < iLogLines)
iLine = iLine + 1
Line Input #iFileNo, LogBuffer(iLine)
Loop
Close iFileNo
End If
Err.Clear
Open sFile For Output As iFileNo
If Err = 0 Then
For iLoop = 0 To iLine
Print #iFileNo, LogBuffer(iLoop)
Next iLoop
Close iFileNo
End If
End SubPrivate Sub Form_Load()
Dim i As Integer
For i = 1 To 120
WriteLog "C:\1.log", "Log " & Str(i), 100
Next i
End
End Sub
Dim LogBuffer() As String ...... End If
On Error GoTo 0
End Sub
Public Sub subLog(info As String)
Dim strBuff As String
Dim i As Long
Open "f:\tmp.txt" For Output As #1
Open "f:\log.txt" For Input As #2
Print #1, info
Do While (Not EOF(2) And i < MAX - 1)
Line Input #2, strBuff
Print #1, strBuff
i = i + 1
Loop
Close (1)
Close (2)
Kill "f:\log.txt"
Name "f:\tmp.txt" As "f:\log.txt"
End Sub
不管怎么样,都要谢谢两位的热心了,问题解决,都给分