みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

初心者です。

テキストファイルを以下の条件で検索して、検索がマッチしたらそのファイルのレコード行を各条件によって指定されたファイルに書き込みたいです。

1)5桁目が"D"且つ 10~11桁目が"A5"の場合、ファイル"TEXT1.txt"に書き込む
2)5桁目が"G"且つ10~11桁目が"B6"の場合、ファイル"TEXT2.txt"に書き込む
3)上記に該当しない場合、ファイル"TEXT3.txt"に書き込む

どなたかご教示のほど宜しくお願い致します。

投稿日時 - 2013-07-02 15:32:53

QNo.8159197

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.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

投稿日時 - 2013-07-04 12:37:29

あなたにオススメの質問