晴歩雨描

晴れた日は外に出て歩き、雨の日は部屋で絵を描く

JScript)リンクURL入りのテキストファイルをHTMLファイルに変換するスクリプト。(ChatGPTコード生成)

リンクURLが入ったテキストファイルをHTMLファイルに変換するJScriptスクリプトを作成。

仕様:以下の例のようなテキストファイル(Shift-JIS)を読み込んで、下のようなHTMLファイル(UTF-8)を出力するJscript。

● インプット・テキストファイル(例)

ページ・タイトル1
https://.......

ページ・タイトル2
https://.......

ページ・タイトル3
https://.......
(・・・以下複数続く・・・)

● アウトプット・HTMLファイル(例)

<html lang="ja">
<head>
<meta charset="utf-8">
<title>サンプル</title>
</head>
<body>
<h1>サンプル</h1>
<p><a href="https://......." target="_blank">ページ・タイトル1</a></p>
<p><a href="https://......." target="_blank">ページ・タイトル2</a></p>
<p><a href="https://......." target="_blank">ページ・タイトル3</a></p>
(・・・以下複数続く・・・)
</body>
</html>

【JScript:text2html.jse】

// ファイルシステムオブジェクトの作成
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var ado = WScript.CreateObject("ADODB.Stream");

// インプットファイルとアウトプットファイルのパス
var inputFile = "input.txt";	// Shift-JIS
var outputFile = "output.html";	// UTF-8

// インプットファイルが存在するかチェック
if (!fso.FileExists(inputFile)) {
	WScript.Echo("インプットファイルが見つかりません: " + inputFile);
	WScript.Quit(1);
}

// インプットファイルをShift-JISで読み込み
ado.Type = 2; // テキストモード
ado.Mode = 3; // 読み取り/書き込み
ado.Charset = "Shift-JIS";
ado.Open();
ado.LoadFromFile(inputFile);
var content = ado.ReadText();
ado.Close();

// 各行を配列に分割
var lines = content.split("\r\n");

// アウトプットファイルをUTF-8で作成
ado.Type = 2; // テキストモード
ado.Mode = 3; // 読み取り/書き込み
ado.Charset = "UTF-8";
ado.Open();
ado.WriteText('<html lang="ja">\n<head>\n<meta charset="utf-8">\n<title>サンプル</title>\n</head>\n<body>\n<h1>サンプル</h1>\n');

// リンク部分を生成する関数
function generateLink(title, url) {
	return '<p><a href="' + url + '" target="_blank">' + title + '</a></p>\n';
}

// インプットファイルの内容を読み込み、リンク部分を書き込み
var currentTitle = '';
for (var i = 0; i < lines.length; i++) {
	var line = lines[i];
	if (line.indexOf('http') === 0) { // 'http'で始まるかチェック
		ado.WriteText(generateLink(currentTitle, line));
		currentTitle = '';
	} else {
		currentTitle = line;
	}
}

// HTMLテンプレートの終了部分を書き込み
ado.WriteText('</body>\n</html>');
ado.SaveToFile(outputFile, 2); // ファイルを保存
ado.Close();

// 完了メッセージを表示
WScript.Echo("HTMLファイルが生成されました: " + outputFile);

以下にスクリプトを置いている。拡張子から「.txt」を外してShift-JISコードにして実行する。

https://ok2nd.github.io/tool/text2html/text2html.jse.txt

「ChatGPT 3.5」に作ってもらった。

最初「Google Gemini」に作ってもらったら、「Node.js」ベースの回答がきたので、「WScript.CreateObject("Scripting.FileSystemObject");」を使った方法を指示したが、

「残念ながら、JScriptでは WScript.CreateObject("Scripting.FileSystemObject"); を使用することはできません。」として希望するものが作成出来なかった。

ChatGPT 3.5」に依頼したら、最初は「Node.js」ベースの回答だったが、「WScript.CreateObject("Scripting.FileSystemObject");」を使った方法を指示したら、すんなりと回答が得られた。