FileSystemObjectでテキストのファイルを1行ごと入出力させ Jscriptの正規表現で置換処理をさせるサンプル。
添付ソースを拡張子HTAで保存して使う。
インアウトのファイル名は固定値になっているので、ここはゆくゆく修正。
<head>
<!–
‘********************************************************************
‘*
‘* 【HTA】 FileSystemObjectでテキスト処理 & Jscriptで置換処理
‘*
‘********************************************************************
–>
<title>【HTA】 FileSystemObjectでテキスト処理 & Jscriptで置換処理</title>
<HTA:APPLICATION
ID="FileSystemObjectRep"
APPLICATIONNAME="Rep"
SCROLL="yes"
SINGLEINSTANCE="yes"
>
</head><script id="lang_js" language="jscript" type="text/jscript">
//FileSystemObject
var FSO = new ActiveXObject("Scripting.FileSystemObject");
//RegExp
//var RE = new ActiveXObject("VBScript.RegExp");//定数
var ForReading, ForWriting, ForAppending;
ForReading = 1;
ForWriting = 2;
ForAppending = 8;//このファイルが置かれているフォルダのパス名を取得する
function GetBaseFolder(){
return FSO.GetFolder(".");
}function Exp()
{
var IN_FILE = GetBaseFolder() + "\\" + "in.txt"
var OUT_FILE = GetBaseFolder() + "\\" + "out.txt"var s,r,re;
s = "";
r = "";document.getElementById(‘ReadFileName’).innerText = "インプット=" + IN_FILE;
document.getElementById(‘WriteFileName’).innerText ="アウトプット=" + OUT_FILE;if(FSO.fileExists(OUT_FILE)){
FSO.DeleteFile(OUT_FILE);
}var RTS = FSO.OpenTextFile( IN_FILE, ForReading, true);
var WTS = FSO.OpenTextFile( OUT_FILE, ForWriting, true);while(1){
s = RTS.ReadLine( );
re = /(a)/g; //Create regular expression pattern.
r = s.replace(re, "Q"); //Replace "The" with "A".WTS.Write(r);
s = "";
r = "";
if(RTS.AtEndOfStream)
{
break;
}
WTS.Write("\r\n");
}RTS.Close();
WTS.Close();
}
</SCRIPT><body onload="Exp()" style="height: 244px">
</body>
<div id="ReadFileName"></div>
<div id="WriteFileName"></div>
<div id="content"></div>
コメント