リンク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");」を使った方法を指示したら、すんなりと回答が得られた。