プロが教える店舗&オフィスのセキュリティ対策術

VBscript 
テキストファイルから特定のキーで検索を掛けて、ひっかかった行に記載された
文字列を別ファイルに転記したいのですがヘルプミー。

A 回答 (2件)

回答される方がいらっしゃらないようなので。

。。

InStr()を使えばいいのかな?と思います。

InStr([検索開始位置, ]検索対象文字列, 検索キー文字列 [, 検索モード])
で、戻り値は(検索キー文字列が検索対象文字列内で見つかった場合)見つかった位置です。

コードは以下のような感じですかね。
==== Code ====
'検索キーの設定
Const key = "ほげほげ"

'検索対象のテキストファイルのオープン
Set fs0 = CreateObject("Scripting.FileSystemObject")
Set fr = fs0.OpenTextFile(Server.MapPath("hogehoge0.txt"), 1)

'検索結果のテキストファイルのオープン
Set fs1 = CreateObject("Scripting.FileSystemObject")
Set fw = fs1.OpenTextFile(Server.MapPath("hogehoge1.txt"), 2)

'テキストファイルの読み込みと検索
Do Until fr.AtEndOfStream
str = fr.ReadLine
If InStr(str, key) > 0 Then
fw.WriteLine(str)
End If
Loop

'ファイルを閉じる
fw.Close
fr.Close

'オブジェクトの解放
Set fw = Nothing
Set fr = Nothing
Set fs0 = Nothing
Set fs1 = Nothing
==== end of Code ====


余談ですが、タイトルはもっと詳しく書くべきでしょう。
(例:[VBSctript]文字列の検索方法を教えてください)

また、stockjpさん自身はまったくコードを書いていないのでしょうか?
書いたものがあるならそれを掲載して、「ここがうまくいかない」と尋ねる形にした
ほうが良いと思います。
コードがあれば、回答者はstockjpさんの意図を具体的につかみやすくなります。
逆に、コードが無ければ、「一から書くのはちょっと。。。」と敬遠されてしまいます。
stockjpさんのスキルアップのためにも、ご自身が書いたコードを掲載すべきでしょう。

老婆心ながらアドバイスです。
    • good
    • 0

どこまでできているのですか?


1)ファイルの特定
2)ファイルの読み込み
3)1行読み込み
4)読み込んだ文字列にキーが存在するかの検索
5)キーの存在する文字列の出力
6)ファイルの終わりまでの繰り返し

1の部分は コマンドラインで指定するとか
特定のフォルダ(カレントフォルダとか)の特定の種類のファイルについてとか、決まりきったファイル名など

2は FileSystemObjectの Fileオブジェクト取得してOpenAsTextStreamメソッドで良いでしょう

3は ReadLIneメソッド
4は InStrメソッド
5は 出力用のTextStreamをCreateTextFileなどで作成したストリームにWriteLineメソッドを使用します
6は AtEndOfStreamを判断材料にした WhileやDoなどのループ処理
といった具合ですよ

ご自分で考えたコードなどを投稿して
ここまで出来ているのだがこの実行結果が期待する結果とこのように違うがどこが変なのでしょう
といった質問形式にしましょう
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています