【HTA】 FileSystemObjectでテキスト処理 & Jscriptの正規表現で置換処理

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>

コメント

タイトルとURLをコピーしました