※ ChatGPTを利用し、要約された質問です(原文:【VBScript】文字列抽出&テキスト生成)
【VBScript】文字列抽出&テキスト生成
このQ&Aのポイント
VBScriptを使用して、テキストファイルから特定の文字列を抽出し、別のテキストファイルに生成する方法についての質問です。
kensyo.vbsというプログラムを使用して、任意のテキストファイルのフルパスを表示し、そのファイルの内容を出力する処理を行っています。
また、InputBoxを使用して抽出したい文字列を入力し、その文字列を変換する処理も行っています。ただし、その後の処理の方法について詰まっているため、アドバイスを求めています。
QNo.9089814の内容と被ってしまうのですが、
アドバイスいただければと思います。
まず以下のプログラムがあります。
現状kensyo.vbsに任意のテキストファイルをドラッグすると、
そのファイルのフルパスを表示した後、
内容を出力する処理となっています。
途中InputBoxを起動し、抽出したい文字列を入力し、
その文字列を変換します、というMsgBoxを加えています。
MsgBoxで「はい」を選択したら、読み込んだテキストファイルから
文字列が含まれる行のみ別名のテキストファイルに抽出したいと考えています。
テキストファイルを読み込む動作までは出来たのですが、
以降の処理をどうすればいいのか、行き詰ってしまいました。
恐れ入りますが、ご教示いただけますと幸いです。
==================================================
<kensyo.vbs>
Option Explicit
Dim intc
Dim strFile, strArguments, strInput, lonmsgbox, objFSO, objOpen, strText
intc = 0
If WScript.Arguments.Count = 0 Then
WScript.Echo "引数が指定されていません。"
Else
For Each strArguments In WScript.Arguments
intc = intc + 1
strFile = strArguments
Next
If intc > 1 Then
MsgBox "2つ以上のファイルが指定されています。" & vbCr _
& "ファイルを指定し直してください。", 48, "Error"
Else
WScript.Echo strFile
strInput = InputBox("抽出したい文字列を入力してください。")
lonmsgbox = MsgBox (strInput & "を抽出しました。" & vbCr _
& strInput & "を変換しますか?", 4 + 32 + 0, "確認")
If lonmsgbox = 6 Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objOpen = objFSO.OpenTextFile(strFile, 1)
Do Until objOpen.AtEndOfStream = True
strText = objOpen.ReadAll
WScript.echo strText
Loop
objOpen.Close
Set objFSO = Nothing
Else
MsgBox ("処理を中断します。")
End If
End If
End If
==================================================
お礼
回答有難うございました。 この部分は想定動作を確認することが出来ました。