VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -