2022年10月21日金曜日

マークファイルの内容をクリップボードにコピー(utf-8版)

以前、マークファイルの内容をクリップボードにコピーするclipmarkfile.jsを作ったのだが、s-jisしか読み込めなかった。そこでutf-8版を作成。

_autodetect_allを使えば自動判別するらしいのだが、僕の環境だとうまく判別してくれないので、s-jis版とutf-8版に分けて運用したいと思う。

climparkfileU.js

//!*script

// マークファイルの内容をutf-8で読み込みクリップボードに保存

if (PPx.EntryFirstMark == 0){
  var f = PPx.Extract("%FCD");
  var s = readFile(f, "utf-8");
  PPx.Clipboard = s;
} else {
  strLine = ""
  while(true){
    var dir = PPx.Extract('%1');
    var entryName = PPx.EntryName;
    var f = dir + "\\" + entryName;
    var s = readFile(f, "utf-8");
    strLine=strLine+s+"\n";
    if(PPx.EntryNextMark == 0) break;
  }
  PPx.Clipboard = strLine
}

// ファイルの読込み
function readFile(fname, charset) {
  if (charset == undefined) {
    charset = "_autodetect_all";
  }
  var adTypeBinary = 1, adTypeText = 2;
  var adReadAll = -1,   adReadLine = -2;
  var s = new ActiveXObject("ADODB.Stream");
  s.Type = adTypeText;
  s.charset = charset;
  s.Open();
  s.LoadFromFile(fname);
  var text = s.ReadText(adReadAll);
  s.Close();
  return text;
}

0 件のコメント:

コメントを投稿