テキストファイルの1行目をコメントファイルに書き出す

MoE用設定 - Memo on the Electron

こちらの設定で用いる MakeComment.js を利用していたのだけど、Unicodeテキストを読み取れないので、新たにスクリプトを書き出してみた。

KC_main = {
F4    ,*script %0s\MakeCommentU.js
}
==MakeCommentU.js==
//!*script
PPx.Execute('*clearchange')

var stream         = new ActiveXObject("ADODB.Stream");
    stream.type    = 2;
var strLine        = '';
var currentDir     = PPx.Extract('%1');
var i              = PPx.EntryAllCount;

// ファイル数が多すぎる場合は警告
if(i>1000&&PPx.Execute('%QN"ファイル数:'+i+' 実行しますか?"')){
    PPx.Quit();
}

for (i;i--;) {
  var entryName = PPx.Entry(i).Name;
  if(PPx.Entry(i).Size&&entryName!="00_INDEX.txt"&&PPx.Entry(i).Name.match(/\.(txt|howm|text)$/i)){
      var txt   = currentDir + "\\" + entryName;

      // 文字コード自動
      stream.charset = '_autodetect_all';
      stream.open();
      stream.loadFromFile(txt);
// 空行は無視する var firstLine = ''; while(!stream.EOS&&firstLine.match(/^[ \t\s\n\r]*$/)){ firstLine = stream.readText('-2'); } var str = entryName + "\t" + firstLine.slice(0,50) + "\n"; strLine = strLine + str; stream.close(); } } if(strLine){ // 00_INDEX.txtのコメントを追加 strLine = strLine + '00_INDEX.txt\t                        *** COMMENT FILE ***'; }else{ // ひとつもコメントが作成されなければ終了 PPx.Quit(); } // UNICODEでコメントファイルを書き込み stream.charset = 'UNICODE'; stream.open(); stream.writeText(strLine); stream.saveToFile('00_INDEX.txt', 2); //1:新規作成 2:新規作成 or 上書き stream.close(); stream = ''; // F5で更新 PPx.Execute('%K"@F5"') PPx.Execute('*viewstyle &コメント表示%:*sortentry &O:コメント順') PPx.SetPopLineMessage('コメント表示・コメントソート')