如果log文件没有内容,从00001开始写
如果有按顺序继续往下泄,一直到99999
然后保存为log.dat.bak再有新的纪录就新建log.dat
如果有按顺序继续往下泄,一直到99999
然后保存为log.dat.bak再有新的纪录就新建log.dat
解决方案 »
- 想用ado数据流读写二制文件
- 关于VB编程中对SQL的远程访问2
- 如何得到某个字符,在整个字符串中的具体位置?
- VB6能否从Windows控件库直接继承来做自己的控件?
- 如何隐藏应用程序呀
- 字符串里如何引用数字变量?
- 各位大侠给小弟一点关于指法练习软件的开发思路?
- 如何让窗口的背景图片,随窗口大小变化而变化?(需要vb源代码)
- 谁知道CSDN中的帖子用鼠标双击后自动滚屏是如何实现的?????
- 不能再简单了!
- 不用控件,怎么使用"打开"与"保存"对话框!?
- "select * from student where " & str1(List1.ListIndex) & " >= " & date1 & " and " & str1(List1.ListIndex) & " <= " & date2 错在
i = 1
Open "c:\log.dat.bak" For Output As #1
For i = 1 To 99999
Print #1, Format(i, "00000")
Next
Close #1
Private Sub Command1_Click() Dim fsoTest As New FileSystemObject, file1 As File, ts As TextStream
Set file1 = fsoTest.GetFile("c:\a.txt")
Set ts = file1.OpenAsTextStream(ForWriting)
'使用Write方法写入
For I = 1 To 99999
ts.Write (I & vbCrLf)
Next
ts.Close
End Sub
是不是要用for appending
关键是怎么实现取出上一次的纪录是多少,然后再追加一条纪录,按顺序。
OpenAsTextStream (ForReading)
读取出上一次的纪录
----------------
OpenAsTextStream (ForAppending)这样追加
用split取出记录号,转化为数值在加一然后在加上消息写入,文件
如果此时记录号已经到了99999最好就进行改名工作不要等下次还要判断
If Err.Number <> 0 Then
Select Case SaveType
Case 0
App.StartLogging App.Path & "\" & App.Title & ".log", vbLogToFile
'App.LogEvent "Time: " & VBA.Now() & " ID: " & VBA.CStr(Err.Number) & " Source: " & Err.Source & " Description: " & Err.Description, vbLogEventTypeError
Case 1
App.StartLogging "", vbLogToNT
'App.LogEvent "ID: " & VBA.CStr(Err.Number) & " Source: " & Err.Source & " Description: " & Err.Description, vbLogEventTypeError
Case 2
Err.Clear
Exit Sub
Case Else
'App.LogEvent "ID: " & VBA.CStr(Err.Number) & " Source: " & Err.Source & " Description: " & Err.Description, vbLogEventTypeError
End Select
App.LogEvent "Time: " & VBA.Now() & " ID: " & VBA.CStr(Err.Number) & " Source: " & Err.Source & " Description: " & Err.Description, vbLogEventTypeError
Err.Clear
End If
End Sub
Dim objFSO As Scripting.FileSystemObject
Dim objFilestream As Object
Dim update_time As String
Dim strFileName As String
Dim strWriteline As String
Dim iCntSpace_kanji As Integer
Dim iCntSpace_kana As Integer
Dim logIndex As String
Dim strTemp As String
Dim lngMax As Double
update_time = Format(Now, "yyyymmddhhmmss")strFileName = App.Path & "\" & LOG
Set objFSO = New Scripting.FileSystemObject
Set objFilestream = objFSO.OpenTextFile(strFileName, ForReading)
logIndex = "0"
Do While Not (objFilestream.AtEndOfStream)
logIndex = Left(objFilestream.ReadLine, 5)
Loop
If logIndex = "99999" Then 'レコードNOはMAX99999まで到達した場合、バックアップファイルにコピーし、ログファイルは初期化する。
objFilestream.Close
objFSO.DeleteFile strFileName
Set objFilestream = objFSO.OpenTextFile(strFileName, ForAppending, True)
logIndex = Format(1, "00000")
ElseIf logIndex = "0" Then
logIndex = Format(1, "00000")
Else
logIndex = Format(Val(logIndex + 1), "00000")
End If
objFilestream.Close Call SetNothing(objFilestream)
strWriteline = ""
strWriteline = strWriteline & logIndex
strWriteline = strWriteline & logshain.strShain_id
strWriteline = strWriteline & strTitle
strWriteline = strWriteline & "_"
strWriteline = strWriteline & strMessage
strWriteline = strWriteline & logshain.strName_kanaji
strWriteline = strWriteline & Space(iCntSpace_kanji)
strWriteline = strWriteline & logshain.strName_kana
strWriteline = strWriteline & Space(iCntSpace_kana)
strWriteline = strWriteline & logshain.strSex
strWriteline = strWriteline & logshain.strBusho
strWriteline = strWriteline & logshain.strKengen
strWriteline = strWriteline & logshain.strNaisen_no
strWriteline = strWriteline & logshain.strYakusyoku
strWriteline = strWriteline & Space(150 - LenB(StrConv(strWriteline, vbFromUnicode)))
strWriteline = strWriteline & update_time
strFileName = App.Path & "\" & LOG
Set objFSO = New Scripting.FileSystemObject
Set objFilestream = objFSO.OpenTextFile(strFileName, ForAppending, True)
objFilestream.WriteLine (strWriteline)
End Sub