• 締切済み

vbsでテキストファイル検索してファイルに書き込む

初心者です。 テキストファイルを以下の条件で検索して、検索がマッチしたらそのファイルのレコード行を各条件によって指定されたファイルに書き込みたいです。 1)5桁目が"D"且つ 10~11桁目が"A5"の場合、ファイル"TEXT1.txt"に書き込む 2)5桁目が"G"且つ10~11桁目が"B6"の場合、ファイル"TEXT2.txt"に書き込む 3)上記に該当しない場合、ファイル"TEXT3.txt"に書き込む どなたかご教示のほど宜しくお願い致します。

みんなの回答

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

オリジナルファイルが、E:\org.txt にあったとして 文字コードがShift-JIS、中身が mCZ8MQsfT2tWHMG XKXrDCT1QA5Pi9v f41jdIHEFa5mEDw NyiEDEF59A53TMP M4SCGZFGuB6mIAt VqfDGgEyZ0Wuz6z とした場合です。 Dim oFS Dim FF(3) Dim tmp Const forReading = 1 Const forWriting = 2 Set oFS = CreateObject("Scripting.FileSystemObject") Set FF(0) = oFS.OpenTextFile("e:\org.txt",1) Set FF(1) = oFS.CreateTextFile("e:\org_1.txt", 2,true) Set FF(2) = oFS.CreateTextFile("e:\org_2.txt", 2,true) Set FF(3) = oFS.CreateTextFile("e:\org_3.txt", 2,true) Do Until FF(0).atEndofStream tmp = FF(0).readLine If Mid(tmp, 5, 1) = "D" And Mid(tmp, 10, 2) = "A5" Then FF(1).writeLine(tmp) ElseIf Mid(tmp, 5, 1) = "G" And Mid(tmp, 10, 2) = "B6" Then FF(2).writeLine(tmp) Else FF(3).writeLine(tmp) End If Loop FF(0).Close:FF(1).Close:FF(2).Close:FF(3).Close

関連するQ&A