スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



サクラエディタ - keisenPaste.js

マクロ書き直した3つめ。ファイルは右のSkyDriveのSakura Editor Macroフォルダにありまそ。

前回の派生で、範囲選択したものかクリップボードデータに枠をつけるだけのもの。

keisenPaste1.png → keisenPaste2.png

(function main(){
var s = Editor.GetSelectedString(0)
|| new ActiveXObject('htmlfile').Script.clipboardData.getData('text');
if(!/\r\n/.test(s)) s +="\r\n";
s = s.replace(/\t/g,' '); //indentのタブをスペース置換する場合。
if(s){ s = s.replace(/\r\n/g,"\n").replace(
/\r/g,"\n").replace(
/\n/g,"\r\n").split("\r\n");
}else return;
maxWdh = compareLen(s);
Editor.insText(setStr(setLength(s)));
})();
   前回とかわらない

function compareLen(s){
var m = "";
for(i in s){
var ln = bLen(s[i]);
if(m < ln) m = ln;
}
if(m % 2) m++;
return m;
}
   罫線文字が2byteなので2で割り切れないなら1++

function setLength(a){
var ln, tl = a.length - 1;
for(var i=0 in a){
ln = bLen(a[i]) || 0;
if(i == tl){;}
else if(ln < maxWdh){
var s ="";
var d = maxWdh - ln;
for(j=0; j < d; j++) s +=" ";
a[i] += s;
}
}
return a;
}
   短い行には半角空白埋め。

function setStr(a){
m = maxWdh / 2;
var k ="", s ="";
for(i=0; i < m; i++) k += "─";
var hLine = "┌"+ k + "┐"+"\r\n";
var tLine = "└"+ k + "┘"+"\r\n";
for(j in a) if(a[j]) s = s +"│"+ a[j] +"│"+"\r\n";
return hLine + s + tLine;
}
   前後左右に罫線文字を追加

function bLen(s){
if(!s) return;
var l = s.length, b = l;
function isWide(c){ return(0x80 <= c &&(c <= 0xff60 || 0xffa0 <= c)) }
for(i=0; i < l; i++) if(isWide(s.charCodeAt(i))) b++;
return b;
}
   前回と同じくbyte長。
   しかしVBSのLENB()もうそっぱちだし、powershellとかsilverlightもいいけど、

   中の人なんとかしてくれんか。

   と思ったら、.NETにjQuery採用してるぢゃないかw!w

   そうか、VisualStudioのインテリセンスにjQueryも出てくるのかw

   長いものに巻かれているうちは帝国も安泰ぢゃw

スポンサーサイト



comment

Secret

No title

どうもです。
そうなるでしょうね、いずれは!
while(aho.atEndofStream)

笹部 政宏
笹部 政宏
mail




フリーソフツ
Category
はてブ
Monthly Archive
New Entry
New Comment
New Trackback
RSS
Copyright © Kittens flewby me All Rights Reserved.

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。