| // execlogophile.js みたいな名前でマクロフォルダへ
word_to_logophile();
function word_to_logophile()
{
// カーソル位置の「検索キーワード」的なものを取得
var str = Editor.ExpandParameter('$C');
// 前後の空白類を置換で削除
str = str.replace(/^[\s\u3000]+/, '').replace(/[\s\u3000]+$/, '');
// 選択文字がない場合終了
if( str.length == 0 ) return;
// 文字をUnicode,16進数4桁にして+をつける
str = str.replace(/./g, function(s){
var hexstr = '000'+(s.charCodeAt(0).toString(16));
return '+' + hexstr.match(/.{2,4}$/)[0];
});
var cmdLine = "\"C:\\Program Files\\Logophile\\Logophile.exe\" -f -u" + str;
// 外部コマンドを実行(入出力なし)
Editor.ExecCommand(cmdLine,0);
}
秀丸とLogophileの仕様が分からないので16進数4桁小文字にして送りつけます。
うまく動かないときは下記のように調整してください。
英語は2桁:'000'→'0'
大文字でないとだめ:-u" + str → -u" + str.toUpperCase()
Editor.がついてない部分は普通のJavaScriptです。
短いのがいいならまとめてこんな感じで
str=ExpandParameter('$C').replace(/^[\s\u3000]+/,'').replace(/[\s\u3000]+$/,'');
if(str.length){
str=str.replace(/./g,function(s){return '+'+('000'+(s.charCodeAt(0).toString(16))).match(/.{2,4}$/)[0];});
ExecCommand("\"C:\\Program Files\\Logophile\\Logophile.exe\" -f -u"+str.toUpperCase(),1);
}
|
|
|