- 追加された行はこの色です。
- 削除された行はこの色です。
* 上下左右に罫線枠付き貼り付け[#w7bf03b3]
-ページ: [[Macro/投稿]]
-作者: [[ガンジャム]]
-カテゴリー: js
-投稿日: 2006-12-25 (月) 23:19:27
** メッセージ [#s4461129]
メモ書きなどに
#code(javascript){{
/*
罫線ボックス追加挿入マクロ(サクラエディタ用)
----------|----------------------------------------------
ファイル名|keisenPaste.js
作成者 |ガンジャム
更新日 |20070525
動作 |
|クリップボードデータに罫線ボックスをつけて挿入
|桁を揃えるためブランク埋めします
*/
//エントリ
main();
function main()
{
var arrLine = getClpbrd();
if(arrLine)
{
var maxWdh = compareLength(arrLine);
var arSetTxt = setLength(arrLine, maxWdh);
insTxt(arSetTxt, maxWdh);
}
}
範囲選択してれば選択文字列、なければクリップボードのテキストの
上下左右に罫線の枠をつけて挿入します。
クリップボードデータはIEから取ってるのでVistaはアラートが出ます。
//クリップボードデータ取得
//改行は\nに統一
//戻り値(データあり):CRLF分割配列
// (データなし):false
function getClpbrd()
{
var ie = new ActiveXObject("InternetExplorer.Application");
ie.Navigate("about:blank");
var clp = ie.Document.parentWindow.clipboardData.getData("Text");
ie = null;
if(clp)
{
var crlf = /\r\n/mg, lf = /\n/mg, cr = /\r/mg
var str = clp.replace(crlf, "\n");
str = str.replace(cr, "\n");
return(str.split("\n"));
} else {
return(false);
}
}
//行比較
function compareLength(arr)
{
var m = "";
for(i in arr)
{
var ln = byteLength(arr[i]);
if (m < ln) {
m = ln;
}
}
if (m % 2) {
m++;
}
return(m);
}
//ブランク梅
function setLength(arr, m)
{
var tl = arr.length - 1;
for(var i=0 in arr)
{
var ln = byteLength(arr[i]);
if((i == tl) && (!ln))
{
} else {
if(ln < m)
{
var s = "";
var d = m - ln;
for(j=0; j<d; j++)
{
s += " ";
}
arr[i] += s;
}
}
}
return(arr);
}
//バイト長取得
function byteLength(s)
{
var len = s.length;
var blen = len;
for(i=0; i<len; i++)
{
if(isWide(s.charCodeAt(i)))
{
blen++;
}
}
function isWide(charCode)
{
return(0x80 <= charCode &&(charCode <= 0xff60 || 0xffa0 <= charCode));
}
return(blen);
}
//罫線文字を追加して挿入
function insTxt(arr, m)
{
m = m / 2;
var k = "", s = "";
for(i=0; i<m; i++)
{
k += "─";
}
var headLine = "┌"+ k + "┐"+"\r\n";
var tralLine = "└"+ k + "┘"+"\r\n";
for(j in arr)
{
if(arr[j])
{
s = s +"│"+ arr[j] +"│"+"\r\n";
}
}
Editor.insText(headLine + s + tralLine);
}
}}
http://cid-b4b8259365d2529f.skydrive.live.com/browse.aspx/Public/Sakura%20Editor%20Macro
----
#comment