「フォーマッタ」の編集履歴(バックアップ)一覧はこちら
「フォーマッタ」(2013/04/22 (月) 14:55:30) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
-[[SQLフォーマッターFor WEB>>http://file.atl.blog.shinobi.jp/sqlFormatter.html]]
-[[HTMLフォーマッターFor WEB>>http://file.atl.blog.shinobi.jp/htmlFormatter.html]]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="-1">
<SCRIPT LANGUAGE="JavaScript">
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('9 5=5||{};5.7=5.7||{};5.k=5.k||{};5.7.O="\\t";5.7.1x={".":3,"(":3,",":p};5.7.1y={".":3,",":3,";":3,")":3,"(*)":3,"(+)":3};5.7.1z={"1e":p,"P":3,"Q":3,"2f":3,"R":3,"Y":3,"Z":3,"1A":3,"10":3,"H":p,"D":3,",":3,"(":3,";":3,"I":3,"E":p,"J":p,"2g":3,"1f":3,"1g":3,"11":3,"D I":3,"q s w":3,"q C s w":3};5.7.1B={"12":3,"Q":3,"R":3,"Y":3,"Z":3,"E":3,"J":3,"1C":3,"1D":3,"1E":3,"10":3,"D":3,")":3,";":3,"q":3,"2h":3,"1F":3,"P":3,",":p,"H":3,"1e":p,"1G":3,"1H":3,"1I":3,"1J":3,"1K":3,"1f":3,"1g":3,"11":3,"D I":3,"q s w":3,"q C s w":3};5.7.1h={"2i":"E"};5.7.1L={"1e":p,"P":3,"Q":3,"12":3,"R":3,"Y":3,"Z":3,"E":3,"J":3,"1A":3,"10":3,"(":3,"2j":3,"H":3,"11":3,"s":3,"2k":3,"q s w":3,"q C s w":3};5.7.1M={"Y":3,"E":3,"J":3,"10":3,"D":3,"1F":3,"H":3,"1f":3,"1g":3,"11":3,"D I":3,"q s w":3,"q C s w":3};5.7.1N={"P":3,"12":3,"Q":3,"R":3,"E":3,"J":3,"H":3};5.7.1i={"1G":3,"1H":3,"1I":3,"1J":3,"1K":3};5.7.1O={"P":3};5.7.1P={"R":3,"Z":3,"1D":3,"1C":3,"1E":3,"12":3,"Q":3};5.7.1Q={"(":")","q s w":"q C s w"};5.7.1R={"D":"I","D I":3,"q":{"s":3,"C":3},"q s":"w","q s w":3,"q C":"s","q C s":"w","q C s w":3};5.7.1j={"E":5.7.O,"J":5.7.O,"H":5.7.O};5.13=8(a){4.F=v K();4.14=0;4.S=m;6(a){4.x(a)}};5.13.u={x:8(a){4.F.15(a);4.14+=a.o;4.S=m},L:8(){6(!4.S){4.S=4.F.1S("")}j 4.S},o:8(){j 4.14},T:8(i){j 4.L().2l(i)},2m:8(){4.14=0;4.F.o=0}};5.k.M=8(){};5.k.M.u={1T:0,1U:1,2n:2,U:8(a){6(!4.16){4.16=v K()}4.16.15(a)},1V:8(){j 4.16},1k:8(){j m},1W:8(a){4.1X=a},1Y:8(){j 4.1X}};5.k.A=8(a){4.1Z=a;4.1l=v K();4.17=5.k.A.u.17++};5.k.A.u=v 5.k.M();5.k.A.u.17=0;5.k.A.u.1k=8(){j 5.k.M.1U};5.k.A.u.1m=8(a){j 4.1l[a]};5.k.A.u.1n=8(a,b){4.1l[a]=b};5.k.A.u.20=8(){j 4.1Z};5.k.A.u.21=8(){j 4.17};5.k.N=8(){};5.k.N.u=v 5.k.M();5.k.N.u.1k=8(){j 5.k.M.1T};5.k.N.u.18=8(a){j v 5.k.A(a)};5.k.N.u.2o=8(a){j v 5.k.2p(a)};5.7.22=8(a){6(a!=m){4.1o=v 5.7.19(a);4.7=a}4.1a=v K();4.1b=v K();4.V=m;4.23="";4.z=0;4.2q={};4.1c={};4.1p={}};5.7.22.u={2r:8(a){6(a!=m){4.1o=v 5.7.19(a);4.7=a}6(4.7==m||4.7.o==0){j""}9 b=v 5.k.N();9 c=b.18("2s");c.1n("1d",3);4.1q(b,c);9 d=v 5.13();4.1r(d,c);4.24(d);j d.L()},24:8(a){6(a.o<=0){j}9 b=a.F.25();6(b){a.x(b.26(/([ \\t]+$)/g,\'\'))}},2t:8(a){9 b=a.F[a.F.o-1];6(b==m||b.T(b.o-1)=="\\n"){j 3}j p},27:8(a,b,c,d,e){9 f=c.1s();9 g=p;9 h="";9 i=5.7.1Q[f];6(i){4.1a.15(4.z);4.1b[e+":"+i]=3}l 6(4.1b[e+":"+f]){4.z=4.1a.25();2u 4.1b[f]}l 6(f==";"){4.z=0;4.1a.o=0}6(5.7.1y[f]){b=b.26(/([ \\t]+$)/g,\'\')}6(5.7.1M[f]){6(4.z>0){4.z--}}6(5.7.1i[f]){6(4.1p[e]==m){4.1p[e]=3}l{4.z--}}6(5.7.1O[f]){4.1c[e]=4.z}6(5.7.1P[f]&&4.1c[e]!=m){4.z=4.1c[e]}6(5.7.1h[f]){4.V=5.7.1h[f]}6(5.7.1B[f]){6(d&&4.V!=f){b="\\r\\n"}}6(4.V==f){h=" ";4.V=m}l 6((5.7.1z[f]&&d)||f.28(/^\\-\\-/)||f.28(/\\*\\/$/)){h="\\r\\n"}l 6(5.7.1j[f]){h=5.7.1j[f]}l 6(5.7.1x[f]){h=""}l{h=" "}6(b!=m&&b.T(b.o-1)==\'\\n\'){6(a.o()>0){a.x(b+4.1t(4.z)+c)}l{a.x(4.1t(4.z)+c)}}l{a.x((b==m?"":b)+c)}6(5.7.1L[f]||5.7.1i[f]){4.z++}4.23=f;j h},1r:8(a,b){9 c=b.1V();6(c==m){j}1u(9 i=0;i<c.o;i++){6(c[i].20()=="29"){4.1r(a,c[i]);G}9 d=b.1m("1d");9 e=b.21();4.2a=4.27(a,4.2a,c[i].1Y(),d,e)}j},1q:8(a,b){9 c;9 d=b.1m("1d")||p;2b((c=4.1o.2c(5.7.1R))!=m){9 e=a.18("2v");e.1W(c);6(!d&&5.7.1N[c.1s()]){d=3;b.1n("1d",3)}6(c=="("){9 f=a.18("29");f.U(e);b.U(f);4.1q(a,f);G}l 6(c==")"){b.U(e);j}b.U(e)}},1t:8(a){9 b="";1u(9 i=0;i<a;i++){b+=5.7.O}j b}};5.7.19=8(a){4.W={",":3,"(":3,")":3,"=":3,"<":3,">":3,"+":3,"-":3,"*":3,"/":3,".":3,";":3,"|":3};4.X={" ":3,"\\t":3,"\\r":3,"\\n":3};4.1v={"<":{"=":3,">":3},"(":{"*":3,"+":3},">":"=","!":"=","(+":")","(*":")","/":"*","*":"/","-":"-","|":"|","<=":3,">=":3,"!=":3,"<>":3,"(+)":3,"(*)":3,"/*":3,"*/":3,"--":3,"||":3};4.2w=m;4.7=a;4.1w=0};5.7.19.u={2c:8(a){9 b;9 c;6(4.B&&4.B.o>0){j 4.B.2d()}6(!4.B){4.B=v K()}2b((b=4.2e())!=m){4.B.15(b);c=4.B.1S(" ");9 d=a[c.1s()];6(d==m){j 4.B.2d()}l 6(d==3){y}l{G}y}6(4.B.o>0){4.B.o=0;j c}l{j m}},2e:8(){9 a;9 b;9 c=v 5.13();9 d=p;9 e=p;9 f=p;9 g=p;6(4.7==m){j m}1u(9 i=4.1w;i<4.7.o;i++){a=4.7.T(i);6(i+1<4.7.o){b=4.7.T(i+1)}l{b=""}6(!e&&!f&&!g&&a=="\\\'"){d=!d;6(!d){c.x(a);y}}l 6(!d&&!f&&!g&&a=="\\""){e=!e;6(!e){c.x(a);y}}l 6(!d&&!e&&!g&&a=="-"&&b=="-"){6(!f&&c.o()>0){i--;y}f=3}l 6(f&&(a=="\\r"||a=="\\n")){f=p;y}l 6(!d&&!e&&!f&&a=="/"&&b=="*"){6(c.o()>0){i--;y}g=3}l 6(g&&a=="*"&&b=="/"){g=p;c.x(a+b);i++;y}6(!d&&!e&&!f&&!g){6(4.W[a]){6(c.o()==0){c.x(a);6(!4.W[b]&&!4.X[b]){y}G}9 h=4.1v[c.L()];6(h){6(h==a||h[a]){c.x(a);6(4.1v[c.L()]==3){y}G}}i--;y}l 6(4.X[a]){6(4.W[b]||4.X[b]){G}6(c.o()>0){y}l{G}}l{6(4.W[b]||4.X[b]){c.x(a);y}}}c.x(a)}4.1w=i+1;6(c.o()>0){j c.L()}l{j m}}};',62,157,'|||true|this|atl|if|sql|function|var||||||||||return|dom|else|null||length|false|WHEN||MATCHED||prototype|new|THEN|append|break|indentCnt|Element|joinArray|NOT|UNION|AND|array|continue|ON|ALL|OR|Array|toString|Node|Document|INDENT_STRING|SELECT|UPDATE|FROM|stringCache|charAt|appendChild|notBreakToken|TOKEN_END_KIGOH_MAP|TOKEN_END_MAP|SET|WHERE|VALUES|USING|INSERT|StringBuffer|len|push|childArray|elementId|createElement|SqlTokenizer|machingIndentArray|machingEndKeyMap|baseIndentMap|BREAK|WITH|MINUS|INTERSECT|NOT_BREAK_TOKEN_MAP|BLOCK_INDENT_NEXT_MINUS_ALL_PLUS_TOKEN_MAP|SPECIAL_LAST_JOIN_TOKEN_MAP|getNodeType|attributeHash|getAttribute|setAttribute|tokenizer|baseIndentPlusMinusFirstFlgMap|createSqlNode|makeSqlBuffer|toUpperCase|getIndent|for|TOKEN_RENKETSU_KIGOH_MAP|tokenIdx|ATO_NO_SPACE_TOHKEN_KIGOH_MAP|MAE_NO_SPACE_TOHKEN_KIGOH_MAP|ATO_BREAK_TOKEN_MAP|BY|MAE_BREAK_TOKEN_MAP|GROUP|HAVING|ORDER|END|LEFT|RIGHT|INNER|FULL|NATURAL|INDENT_PLUS_TOKEN_MAP|INDENT_MINUS_TOKEN_MAP|KAKKO_BREAK_TOKEN_MAP|BASE_INDENT_SEARCH_MAP|BASE_BLOCK_LEVEL_INDENT_MAP|MACHING_INDENT_MAP|SPECIAL_JOIN_TOKEN_MAP|join|DOCUMENT_NODE|ELEMENT_NODE|getChildNodes|setNodeValue|value|getNodeValue|tagName|getTagName|getElementId|SqlFormatter|oldUpperToken|rTrimBuffer|pop|replace|formatToken|match|block|staticSpliter|while|nextTokenJoin|shift|nextToken|INTO|JOIN|ELSE|BETWEEN|CASE|MERGE|substring|clear|TEXT_NODE|createTextNode|Text|machingIndentMap|format|root|isLastBreakBuffer|delete|token|specialJoinMap'.split('|'),0,{})) //"
function load() {
var cookieMap = getCookieMap();
// Cookieからエレメントの初期化.
if (cookieMap["kanma"]) {
selectElementByValue(document.getElementsByName("kanma"), cookieMap["kanma"]);
}
if (cookieMap["andor"]) {
selectElementByValue(document.getElementsByName("andor"), cookieMap["andor"]);
}
if (cookieMap["indent"]) {
selectElementByValue(document.getElementsByName("indent"), cookieMap["indent"]);
}
if (cookieMap["join"]) {
selectElementByValue(document.getElementsByName("join"), cookieMap["join"]);
}
if (cookieMap["text"]) {
selectElementByValue(document.getElementsByName("text"), cookieMap["text"]);
}
if (cookieMap["kaigyo"]) {
selectElementByValue(document.getElementsByName("kaigyo"), cookieMap["kaigyo"]);
}
}
function selectElementByValue(elements, value) {
for (var i = 0; i < elements.length; i++) {
if (elements[i].value == value) {
elements[i].checked = true;
break;
}
}
}
function getCheckedElementByName(name) {
var elements = document.getElementsByName(name);
for (var i = 0; i < elements.length; i++) {
if (elements[i].checked) {
return elements[i];
}
}
}
function getCookieMap() {
var cookieMap = [];
var cookieList = document.cookie.split(/; */);
for (var i = 0; i < cookieList.length; i++) {
var tmp = cookieList[i].split("=");
cookieMap[tmp[0]] = unescape(tmp[1]);
}
return cookieMap;
}
function getCookieString(element) {
return element.name + "=" + escape(element.value) + ";";
}
function saveCookie() {
var date = new Date();
date.setTime(date.getTime() + 3 * 365 * 24 * 60 * 60 * 1000);
document.cookie = getCookieString(getCheckedElementByName("kanma"));
document.cookie = getCookieString(getCheckedElementByName("andor"));
document.cookie = getCookieString(getCheckedElementByName("indent"));
document.cookie = getCookieString(getCheckedElementByName("join"));
document.cookie = getCookieString(getCheckedElementByName("text"));
document.cookie = getCookieString(getCheckedElementByName("kaigyo"));
document.cookie = "expires=" + date.toGMTString();
}
function format() {
var element = document.getElementById('sql');
var kanmaElements = document.getElementsByName("kanma");
var andorElements = document.getElementsByName("andor");
var indentElements = document.getElementsByName("indent");
var joinElements = document.getElementsByName("join");
if (kanmaElements[0].checked) {
atl.sql.ATO_BREAK_TOKEN_MAP[","] = false;
atl.sql.MAE_BREAK_TOKEN_MAP[","] = true;
atl.sql.MAE_NO_SPACE_TOHKEN_KIGOH_MAP[","] = false;
atl.sql.ATO_NO_SPACE_TOHKEN_KIGOH_MAP[","] = true;
} else {
atl.sql.ATO_BREAK_TOKEN_MAP[","] = true;
atl.sql.MAE_BREAK_TOKEN_MAP[","] = false;
atl.sql.MAE_NO_SPACE_TOHKEN_KIGOH_MAP[","] = true;
atl.sql.ATO_NO_SPACE_TOHKEN_KIGOH_MAP[","] = false;
}
if (andorElements[0].checked) {
atl.sql.ATO_BREAK_TOKEN_MAP["AND"] = false;
atl.sql.MAE_BREAK_TOKEN_MAP["AND"] = true;
atl.sql.ATO_BREAK_TOKEN_MAP["OR"] = false;
atl.sql.MAE_BREAK_TOKEN_MAP["OR"] = true;
atl.sql.ATO_BREAK_TOKEN_MAP["ON"] = false;
atl.sql.MAE_BREAK_TOKEN_MAP["ON"] = true;
} else {
atl.sql.ATO_BREAK_TOKEN_MAP["AND"] = true;
atl.sql.MAE_BREAK_TOKEN_MAP["AND"] = false;
atl.sql.ATO_BREAK_TOKEN_MAP["OR"] = true;
atl.sql.MAE_BREAK_TOKEN_MAP["OR"] = false;
atl.sql.ATO_BREAK_TOKEN_MAP["ON"] = true;
atl.sql.MAE_BREAK_TOKEN_MAP["ON"] = false;
}
if (indentElements[0].checked) {
atl.sql.INDENT_STRING = "\t";
atl.sql.SPECIAL_LAST_JOIN_TOKEN_MAP["AND"] = atl.sql.INDENT_STRING;
atl.sql.SPECIAL_LAST_JOIN_TOKEN_MAP["OR"] = atl.sql.INDENT_STRING;
atl.sql.SPECIAL_LAST_JOIN_TOKEN_MAP["ON"] = atl.sql.INDENT_STRING;
} else {
atl.sql.INDENT_STRING = " ";
atl.sql.SPECIAL_LAST_JOIN_TOKEN_MAP["AND"] = " ";
atl.sql.SPECIAL_LAST_JOIN_TOKEN_MAP["OR"] = " ";
atl.sql.SPECIAL_LAST_JOIN_TOKEN_MAP["ON"] = " ";
}
if (joinElements[0].checked) {
atl.sql.ATO_BREAK_TOKEN_MAP["JOIN"] = true;
} else if (joinElements[1].checked) {
atl.sql.ATO_BREAK_TOKEN_MAP["JOIN"] = false;
}
if (element.value.length > 0) {
var formater = new atl.sql.SqlFormatter(element.value);
element.value = formater.format();
}
saveCookie();
};
function changeText() {
var element = document.getElementById('sql');
saveCookie();
if (element.value.length == 0) {
return;
}
var textElements = document.getElementsByName("text");
var kaigyo = getCheckedElementByName("kaigyo").value;
var lines = element.value.split(/\r?\n/);
var buffer = [];
for (var i = 0; i < lines.length; i++) {
if (textElements[0].checked) {
// Java
buffer.push((lines[i].replace(/\\/g, "\\\\").replace(/\"/g, "\\\"") + kaigyo).replace(/^|$/g, "\""));
element.value = buffer.join(" +\r\n");
} else if (textElements[1].checked) {
// Perl
buffer.push((lines[i].replace(/\\/g, "\\\\").replace(/\"/g, "\\\"") + kaigyo).replace(/^|$/g, "\""));
element.value = buffer.join(" .\r\n");
}
}
}
function changeUnText() {
var element = document.getElementById('sql');
saveCookie();
if (element.value.length == 0) {
return;
}
var textElements = document.getElementsByName("text");
var lines = element.value.split(/\r?\n/);
var buffer = [];
for (var i = 0; i < lines.length; i++) {
if (textElements[0].checked) {
// Java
buffer.push(lines[i].replace(/^\"| *(\\r)?(\\n)?\" *\+? *$/g, "").replace(/\\\"/g, "\"").replace(/\\\\/g, "\\"));
} else if (textElements[1].checked) {
// Perl
buffer.push(lines[i].replace(/^\"| *(\\r)?(\\n)?\" *\.? *$/g, "").replace(/\\\"/g, "\"").replace(/\\\\/g, "\\"));
}
}
element.value = buffer.join("\r\n");
}
</SCRIPT>
</head>
<body onload="load();">
<!--shinobi 解析-->
<script type="text/javascript" src="http://x7.tonosama.jp/ufo/098458502"></script>
<noscript><a href="http://x7.tonosama.jp/bin/gg?098458502" target="_blank">
<img src="http://x7.tonosama.jp/bin/ll?098458502" border="0"></a><br>
<span style="font-size:9px"><img style="margin:0;vertical-align:text-bottom;" src="http://img.shinobi.jp/tadaima/fj.gif" width="19" height="11"> <a href="http://original_gift.rentalurl.net" target="_blank">オリジナルギフト</a> <a href="http://diamond.rentalurl.net" target="_blank">ダイヤモンド</a></span></noscript>
<!--shinobi カウンター-->
<div align="right">
<script type="text/javascript" src="http://ct2.akazunoma.com/sc/1154769"></script>
<noscript><a href="http://ct2.akazunoma.com/gg/1154769" target="_blank">
<img src="http://ct2.akazunoma.com/ll/1154769" border="0" alt="カウンター" /></a><br />
<span id="NINCT1SPAN1154769" style="font-size:9px">[PR] <a href="http://jidousya_hoken_mitsumori.rentalurl.net" target="_blank">自動車保険見積り</a></span></noscript>
</div>
<div align="center" style="">
<b style="font-size : 200%">SQLフォーマッターFor WEB</b> <b>β014</b>
<br>
<br>
<span style="font-size: 80%;">
サクラエディタSQL整形マクロをベースにWEB化してみました。<br>
ローカルに保存してSQL文整形ツールとしてもお使えできます。
</span>
<br>
<table style="border: 1px solid gray;width:580px;font-size: 80%;">
<tr>
<td align="left">
<b>~使い方~</b>
</td>
</td>
<tr>
<td align="left">
1. 下のテキストボックスにSQLを貼り付ける。<br>
2. 思うがままに「整形する」ボタンを押下する。<br>
<br>
いい感じに整形できたら出来上がり~。
本家のサクラエディタマクロ版のSQL整形マクロは<a href="http://atl.blog.shinobi.jp/">コチラ</a>から。<br>
<br>
※β010 for Webからは<font color="red"><b>JOIN形式</b></font>を指定できるようになりましたっ!(2010/5/1)<br>
※β013ex1 for Webからは<font color="red"><b>テキスト変換</b></font>ができるようになりましたっ!(2010/11/3)<br>
さらにCookieに設定値を保持するようにしたので、次回からは再設定が不要になりましたっ!<br>
※β014 for WEBからは<font color="red"><b>between A and B</b></font>に対応しました(2012/8/14)
</td>
</tr>
</table>
<br>
<table style="border: 1px solid gray;width:380px;font-size: 90%;" >
<tr align="left">
<td>カンマ整形:</td>
<td><input type="radio" name="kanma" value="0">前</td>
<td><input type="radio" name="kanma" value="1" checked>後</td>
</tr>
<tr align="left">
<td>AND/OR/ON整形:</td>
<td><input type="radio" name="andor" value="0" checked>前</td>
<td><input type="radio" name="andor" value="1">後</td>
</tr>
<tr align="left">
<td>インデント:</td>
<td><input type="radio" name="indent" value="0">タブ</td>
<td><input type="radio" name="indent" value="1" checked>スペース4</td>
</tr>
<tr align="left">
<td>JOIN形式:</td>
<td><input type="radio" name="join" value="0" checked>パターンA</td>
<td><input type="radio" name="join" value="1">パターンB</td>
</tr>
</table>
<textarea rows=16 cols=96 id="sql"style="overflow:scroll;" wrap=off></textarea>
<br>
<input type="button" value="整形する" onclick="format();">
<br><br>
<div style="width:380px;font-size: 90%;" align="left">
おまけ:<br>
</div>
<table style="border: 1px solid gray;width:380px;font-size: 90%;">
<tr align="left">
<td>変換フォーマット:</td>
<td><input type="radio" name="text" value="0" checked>Java</td>
<td><input type="radio" name="text" value="1">Perl</td>
</tr>
<tr align="left">
<td>改行コード:</td>
<td><input type="radio" name="kaigyo" value=" " checked>なし</td>
<td><input type="radio" name="kaigyo" value="\n">\n</td>
<td><input type="radio" name="kaigyo" value="\r\n" checked>\r\n</td>
<td></td>
</tr>
</table>
<input type="button" value="テキスト変換" onclick="changeText();">
<input type="button" value="テキスト逆変換" onclick="changeUnText()">
</div>
<br>
</body>
</html>
EOF
-[[SQLフォーマッターFor WEB>>http://file.atl.blog.shinobi.jp/sqlFormatter.html]]
-[[HTMLフォーマッターFor WEB>>http://file.atl.blog.shinobi.jp/htmlFormatter.html]]
EOF