投稿日 | : 2005/02/24(Thu) 20:54 |
投稿者 | : こう |
URL | : |
タイトル | : Re^4: ログファイルの内容削除について |
ご教授有難う御座いました。
以下のソースを作成しました。
1秒以内で処理出来ました。
有難う御座いました。
Dim objFile As New FileSystemObject
Dim tsTextStream As TextStream
Dim tsDummyStream As TextStream
Dim lFileSize As Long
Dim lFileLine As Long
Dim lLineCount As Long
Dim strReadBuf As String
'ログファイルのサイズが500KBを超えると最初の行から半分削除して、サイズを半分にする
If lFileSize >= LOG_FILESIZE Then 'LOG_FILESIZE(50万バイト)
'ログファイルを読み取り専用で開き、ダミーログファイルを作成する
Set tsTextStream = objFile.OpenTextFile(ログファイルパス, ForReading, False)
Set tsDummyStream = objFile.OpenTextFile(ダミーファイルパス, 8, True)
’以前にラインプロパティでそう行数を取得している
lFileLine = lFileLine / 2 '総行数を半分の行数にする
'ファイルを読み込む
Do Until tsTextStream.AtEndOfStream = True
lLineCount = lLineCount + 1
If lFileLine <= lLineCount Then
strReadBuf = tsTextStream.ReadLine
Call tsDummyStream.WriteLine(strReadBuf)
Else
tsTextStream.SkipLine '次の行
End If
Loop
’終了処理
Call EndProcess(False, False, False, tsTextStream:=tsTextStream, _
objFile:=objFile, tsDummyStream:=tsDummyStream)
Call Kill("ログファイル名") '以前のログファイル削除
'ダミーファイルを元のログファイル名に変更
Name "ダミーファイル名" As "ログファイル名"
End If