, &, |, (, ) を置換
<, >, &, |, (, ) を置換する。
SourceToHtml003.js
// 入力ファイル名
var inFileName = "Z:\\TEST.txt";// 出力ファイル名
var outFileName = "Z:\\TEST.html";// 雛形ファイル名
var tempFileName = "Z:\\TEST.temp";// 変換対象文字
var escapeChar = "<>&()|";// FileSystemObject を 生成
var fs = WScript.CreateObject("Scripting.FileSystemObject");// 雛形ファイルを 読み込み専用モードで 開く
var tsTemp = fs.OpenTextFile(tempFileName, 1);// 出力ファイルを 新規作成モードで 開く
var tsOut = fs.OpenTextFile(outFileName, 2, -1);// 雛形ファイルの終わりまで繰り返す
while (!tsTemp.AtEndOfStream)
{
// 雛形ファイルを 1行ずつ読む
var line = tsTemp.ReadLine();// 入力ファイル名 を 出力
if (line.indexOf("%入力ファイル名%") >= 0)
{
tsOut.WriteLine(line.replace("%入力ファイル名%", fs.GetFileName(inFileName)));
}
// 行番号 を 出力
else if (line == "%行番号%")
{
// 入力ファイルを 読み込み専用モードで 開く
var tsIn = fs.OpenTextFile(inFileName, 1);// 行番号を初期化
var lineNo = 0;// 入力ファイルの終わりまで繰り返す
while (!tsIn.AtEndOfStream)
{
// 入力ファイルを1行ずつ読む
tsIn.ReadLine();// 行番号を書く
tsOut.WriteLine(FormatNum(++lineNo));
}// 入力ファイルを 閉じる
tsIn.Close();
}
// プログラムソース を 出力
else if (line == "%プログラムソース%")
{
// 入力ファイルを 読み込み専用モードで 開く
var tsIn = fs.OpenTextFile(inFileName, 1);// 入力ファイルの終わりまで繰り返す
while (!tsIn.AtEndOfStream)
{
// 入力ファイルを 1行ずつ読む
var lineIn = tsIn.ReadLine();// "<", ">", "&", "(", ")", "|" を変換
var lineOut = "";
// 1文字ずつ処理する
for (i=0;i<lineIn.length;i++)
{
// 1文字取り出す
var c = lineIn.substr(i, 1);// "<", ">", "&", "(", ")", "|" のいずれかか?
if (escapeChar.indexOf(c) >= 0)
// エンコードして出力
lineOut += escape(c).replace("%", "&#x") + ";";
else
// そのまま出力
lineOut += c;
}// 変換した文字列を書く
tsOut.WriteLine(lineOut);
}// 入力ファイルを 閉じる
tsIn.Close();
}
else
{
// 雛形ファイルを 1行ずつ書く
tsOut.WriteLine(line);
}
}// 出力ファイルを 閉じる
tsOut.Close();
// 雛形ファイルを 閉じる
tsTemp.Close();// 数値の書式化 (例: 123 → "00123")
function FormatNum(num)
{
var s = "00000" + num;return (s.substr(s.length - 5, 5));
}