tagCANDY CGI VBレスキュー(花ちゃん) - テキストファイルの内容を1行だけ削除したい(VB6.0) - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
テキストファイルの内容を1行だけ削除したい(VB6.0)
元に戻る スレッド一覧へ 記事閲覧
このページ内の検索ができます。(AND 検索や OR 検索のような複数のキーワードによる検索はできません。)

テキストファイルの内容を1行だけ削除したい(VB6.0) [No.62の個別表示]
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.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
メンテ

Page: 1 |

 投稿フォーム               スレッド一覧へ
題  名 スレッドをトップへソート
名  前
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存   
スレッド一覧へ