質問: VBSを利用して、文字列から一部分だけを抜き出す こんにちわ VBSを利用して、csv形式のファイルを読み込んで文字列の一部を抜き出す 処理を行いたいと思っております。 具体的には、csv形式のファイルをtxt形式に置き換えると "aaaa","bbbb","ccc","ddd","あああeee","OS=abcde" というような形で開きます。 ※a~eの文字数は固定ではありません。 このような場合、文字列に「あああ」が含まれていたら、 「ccc」と「OS=*****」をcsvまたはtxtに出力する という処理を行おうとしております。 どのようにプログラムを組めば良いでしょうか。 お手数ですが、ご教授願えれば、助かります。よろしくお願い致します。
回答: VBSにはInstr関数がある。 それを使えば良いのでは。 いくらか質問者がやってみての質問ですか。 ーー 例データ "aaaa","bbbb","ccc","ddd","あああeee","OS=abcde" "aaaa","bbbb","fff","ddd","ああいeee","OS="efghi" "aaaa","bbbb","sss","ddd","あああggg","OS=abcab" "aaaa","bbbb","fff","ddd","ああいeee","OS="efghi" "aaaa","bbbb","ccc","ddd","eあああqqq","OS=abcef" "aaaa","bbbb","fff","ddd","ああいeee","OS="efghi" 実行結果 ccc,OS=abcde sss,OS=abcab ccc,OS=abcef ーーー コード例 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.OpenTextFile("C:\Documents and Settings\xxxx\My Documents\データ例.txt") Set objTextFileo = objFSO.OpenTextFile("C:\Documents and Settings\xxxx\My Documents\データ例X.txt", 2,true) Do While objTextFile.AtEndOfStream <> True x=objtextfile.readline MsgBox x y = Replace(x, """", "") MsgBox y p = InStr(y, "あああ") If p <> 0 Then MsgBox "あああ が含まれている" s = Split(y, ",") objTextFileo.writeline (s(2) & "," & s(5)) Else MsgBox "あああ が含まれていない" End If loop objTextFile.Close objTextFileo.Close