developer_RYO’s blog

スマホアプリやPCゲーム、音楽やイラストを自由気ままに作っている人の技術ログです

サクラエディタのマクロでsqlテキスト整形

f:id:developer_RYO:20160928231018g:plain

totech.hateblo.jp
仕事効率化のために、マクロを作るよ。

■このマクロで実行すること
・変換対象→選択しているテキスト
・タブ→カンマとクオーテーションに変換「','」
・行末→クオーテーションとカンマと丸括弧追加「'),」
・行頭→クオーテーションと丸括弧追加「('」
・文末→クオーテーションとセミコロンと丸括弧追加「');」
・null,NULLにはクオーテーション付けない

function TabTextToSQLText(text) {
  
  //タブ→カンマ変換
  text = text.replace(/\t/g,"','");
  //「改行」→「'),改行」に変換
  text = text.replace(/\r\n/g,"'),\r\n");
  //行頭に「('」を追加
  text = text.replace(/^(.+?)$/mg,"('$1");
  //null文字にかっこがついていたら、かっこを外す
  text = text.replace(/\'null\'/g,"null");
  text = text.replace(/\'NULL\'/g,"NULL");
  //最後に');を付ける
  text += '\');'
 return text;
}
//==========
// MAIN
//==========
// 選択範囲のテキストを取得
var text = Editor.GetSelectedString(0);
// 変換後のテキストを出力
if ( text !== "" ) Editor.InsText(TabTextToSQLText(text));