テンプレートファイルとマージして出力する

続いて、ソースファイルとテンプレートファイルとをマージして出力する。

SourceToHtml002.js


// 入力ファイル名
var inFileName = "Z:\\TEST.txt";

// 出力ファイル名
var outFileName = "Z:\\TEST.html";

// 雛形ファイル名
var tempFileName = "Z:\\TEST.temp";

// 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行ずつ読んで1行ずつ書く
tsOut.WriteLine(tsIn.ReadLine());
}

// 入力ファイルを 閉じる
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));
}