vbscript を使用して、あるファイルのテキストを別のファイルのテキストに置き換えるにはどうすればよいですか?
置き換えられるテキストは、ファイルの途中にあります。
filea.txt: こんにちは残酷な世界
fileb.txt: 残酷
filec.txt: ハッピー
以下が実行された後、sResult = "hello happy world" になります。
Dim oFSO
Dim sFileAContents
Dim sFileBContents
Dim sFileCContents
Dim sResult
Set oFSO = CreateObject("Scripting.FileSystemObject")
sFileAContents = oFSO.OpenTextFile("c:\filea.txt").ReadAll()
sFileBContents = oFSO.OpenTextFile("c:\fileb.txt").ReadAll()
sFileCContents = oFSO.OpenTextFile("c:\filec.txt").ReadAll()
sResult = Replace(sFileAContents, sFileBContents, "")
FileToSearchは、置換を検索するテキストを含むファイルです。FileReplaceTextは、
置換テキストを含むファイルです。
変数strTextToFindの値を編集して、検索および置換するテキストを含めます
Dim objFSO
Dim strFileToSearch
Dim strFileReplaceText
Dim strTextToFind
Dim strTextToSearch
Dim strTextReplaceText
Dim strFinalText
strFileToSearch = "C:\FileToSearch.txt"
strFileReplaceText = "C:\FileReplaceText.txt"
strTextToFind = "text to search for here"
Set objFSO = CreateObject("Scripting.FileSystemObject")
strTextToSearch = objFSO.OpenTextFile(strFileToSearch).ReadAll()
strFileReplaceText = objFSO.OpenTextFile(strFileReplaceText).ReadAll()
strFinalText = Replace(strTextToSearch, strTextToFind, strFileReplaceText)
この最終テキストをファイルに書き戻す場合は、次のコードを追加します。
Const ForWriting = 2
Dim strFileFinalOutput
strFileFinalOutput = "C:\FileFinalOutput.txt"
Set objTextFile = objFSO.OpenTextFile(strFileFinalOutput, ForWriting, True)
objTextFile.Write strFinalText
objTextFile.Close
Set objTextFile = Nothing
このコードはファイル全体をメモリ(.ReadAll)に読み込み、非常に大きなファイルで問題が発生する可能性があります。この場合、コードを編集して、データを1行ずつ読み取り/検索/置換/書き込みすることができます。
検索しているテキストが連続しておらず、すべて同じ行にある場合、検索/置換プロセスはより複雑になり、このコードはそれを処理するために追加の作業が必要になります。