1

vbscript を使用して、あるファイルのテキストを別のファイルのテキストに置き換えるにはどうすればよいですか?

置き換えられるテキストは、ファイルの途中にあります。

4

2 に答える 2

4

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, "")
于 2008-11-11T15:06:13.480 に答える
0

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行ずつ読み取り/検索/置換/書き込みすることができます。

検索しているテキストが連続しておらず、すべて同じ行にある場合、検索/置換プロセスはより複雑になり、このコードはそれを処理するために追加の作業が必要になります。

于 2012-07-27T00:11:18.337 に答える