- 日時: 2007/07/29 10:39
- 名前: 花ちゃん
- ***********************************************************************************
* カテゴリー:[ファイル入出力][][] * * キーワード:テキストファイル,CSVファイル,読み込み,ファイル処理,行削除, * ***********************************************************************************
元質問:条件に合った行の削除・・・ - ワタル 2003/11/14-18:08 No.6597
テキストファイル内で、行の先頭の文字列「xxx」を含んでいる行だけを削除したいのですが 色々調べてもどうしても分かりませんでした。
--------------------------------------------------------------------------- Re^3: 条件に合った行の削除・・・ - KG 2003/11/15-18:27 No.6608 ---------------------------------------------------------------------------
行頭が「×××」となっているならば、下記のような方法もとれますね。
Private Sub Command1_Click() Dim fnoR As integer Dim fnoW As integer Dim ReadLine As String
fnoR = FreeFile Open "c:\sampl.txt" For Input As #fnoR fnoW = FreeFile Open "c:\sampl_rslt.txt" For Output As #fnoW
Do Until EOF(fnoR) Line Input #fnoR, ReadLine If Left$(ReadLine,3) <> "×××" Then Print #fnoW, ReadLine End If Loop
Close #fnoR Close #fnoW End Sub
----------------------------------------------------------------- 上記は、必要な行を新しいファイルに書き込んでおられるのでちょうどコピーをしているような感じでしょうか?
下記の私のオーソドックスな方法よりはかなり早いです。
Re: 条件に合った行の削除・・・ - 花ちゃん 2003/11/14-20:24 No.6598
Private Sub Command1_Click() Dim TxtLine As String Dim MyString As String Dim lngFileNo As Long lngFileNo = FreeFile Open "c:\sampl.txt" For Input As #lngFileNo Do Until EOF(lngFileNo) Line Input #lngFileNo, TxtLine If InStr(TxtLine, "xxx") <> 1 Then MyString = MyString & TxtLine & vbCrLf End If Loop Close #lngFileNo '保存処理 lngFileNo = FreeFile Open "c:\sample1.txt" For Binary Access Write As #lngFileNo Put #lngFileNo, , MyString Close #lngFileNo End Sub
|