tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
テキストファイルの内容を1行だけ削除したい(VB6.0) ( No.0 )  [親スレッドへ]
日時: 2007/07/16 10:56
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[ファイル入出力][][]                                                *
* キーワード:CSVファイル,TXTファイル,行削除,高速化,,                             *
***********************************************************************************

元質問:テキストファイルの内容を1行だけ削除したい - イツキ  2003/07/16-12:59 No.4845

あるプログラムを作成中で、そのプログラムでエラーなどが発生した場合にエラーログファイルに、エラー内容を書き出します。
しかし、今後ずっと使っていくプログラムの為、ログファイルを際限なく追加するだけでは、HDDの容量を喰い過ぎてしまいます。
そこでログファイルのサイズを制限し、1MBまでは無条件追加とし、1MBを超えると1件追加するたびに、1件削除しようと思います。
ログは1件=1行でテキストファイルの書き込む予定です。
ここで、一番古い1件のログを削除したいのですが、1行のみ削除というのは、どのようにすればいいでしょうか?


-------------------------------------------------------------------------------
Re: テキストファイルの内容を1行だけ削除.. - 花ちゃん  2003/07/16-15:41 No.4848
-------------------------------------------------------------------------------

スマートではありませんが、少しでも高速に処理したいなら、下記の方法でも。

Private Sub Command1_Click()
    Dim DelTxt      As String
    Dim Fso         As New FileSystemObject
    Dim FsoTS       As TextStream
    Dim DelByt      As Long
    Dim FilePath    As String
    Dim bytArray2() As Byte
    Dim bytArray()  As Byte
    Dim intFileNo   As Integer
    Dim lngFileLenB As Long
    FilePath = App.Path & "\test.txt"
    Set FsoTS = Fso.OpenTextFile(FilePath)
    DelTxt = FsoTS.ReadLine
    FsoTS.Close
    Set FsoTS = Nothing
    DelByt = LenB(StrConv(DelTxt, vbFromUnicode)) + 2
    lngFileLenB = FileLen(FilePath)
    ReDim bytArray2(DelByt - 1)
    ReDim bytArray(lngFileLenB - DelByt - 1)
    intFileNo = FreeFile
    Open FilePath For Binary As #intFileNo
    Get #intFileNo, , bytArray2
    Get #intFileNo, , bytArray
    Close #intFileNo
    Kill FilePath
    intFileNo = FreeFile
'   Text1.Text = StrConv(bytArray, vbUnicode)

    Open FilePath For Binary Access Write As #intFileNo
        Put #intFileNo, , bytArray
    Close #intFileNo
End Sub



 [スレッド一覧へ] [親スレッドへ]