アプリ版:「スタンプのみでお礼する」機能のリリースについて

初心者で、もしかしたらすっごく恥ずかしい事を聞いているかも知れませんが・・・

テキストファイルの中を正規表現を使って検索し、指定(固定)文字列と置換したいのですが、どうもうまく行きません。
ソースは以下のような物です。
-----
Set FS = CreateObject("Scripting.FileSystemObject")
Set ts=Fs.OpenTextFile("C:\Program Files\ABC\EFG.txt",1)
myStr=ts.ReadAll

repStr = "NG_PATH =D:\ABC\HIJ"
Set objRE = New RegExp
objRE.Pattern = "^NG_PATH.*=C:\\Program\sFiles\\ABC\\HIJ"
objRE.IgnoreCase = True
objRE.Global = True
newStr = objRE.Replace(myStr,repStr)
ts.Close

Set ts = FS.OpenTextFile("C:\Program Files\ABC\EFG.txt",2)
ts.Write newStr
ts.Close
-------
●ポケットリファレンスの内容を見て、組み合わせながら作っています ^_^;
●置換対象ファイルの中をobjRE.Patternで指定している内容で検索すると見つかります。
●置換対象ファイルの更新日時を確認すると、VBS実行時間で更新されています。

それから「myStr」や「newStr」は、任意の変数を宣言して、そっちを使う事って出来ますか?

A 回答 (2件)

あっ、ごめんなさい、嘘ついてしまいました。


自分で勝手に
objRE.Multiline = True
を追加してました。(^^;
どうやらコレが必要のようです。
追加する場所は
objRE.Pattern = "^NG_PATH.*=C:\\Program\sFiles\\ABC\\HIJ"
objRE.IgnoreCase = True
objRE.Global = True
の辺りです。
    • good
    • 0
この回答へのお礼

\(^o^)/ ありがとうございます!!
無事置換されました。

MSDNのHPで確認しましたが、tsukasa-12rのご指摘のように、objRE.Multiline = True を入れてないと
ハットとかダラーとかと影響が出るんですね、きっと。

ありがとうございました。

お礼日時:2004/03/09 00:36

C:\Program Files\ABC\EFG.txt の中身ですが、


>NG_PATH = C:\Program Files\ABC\HIJ
のように = の後にスペースが入ってたりしてませんか?
試しにやってみましたら、ちゃんと置換できてましたよ。

この回答への補足

回答ありがとうございます。

でも、依然置換できません(T_T)
スペースをとってみたり、逆にダメ元で入れてみたりしたのですが。。。

でも、きっとtsukasa-12rさんの仰るレベルの問題だと言う気がしています。

補足日時:2004/03/08 23:01
    • good
    • 1

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