テンプレートファイルとマージして出力する
続いて、ソースファイルとテンプレートファイルとをマージして出力する。
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));
}