使用EmEditor的Macros处理文本
下面的sql语句的DISPLAY_ORDER值有问题,都指定了固定值9,本应该是一连续的数字。
INSERT INTO `DICTIONARY_OPTIONS` (`DICTIONARY_CODE`, `CODE`, `NAME`, `DEFAULT_CHECK_FLAG`, `DISPLAY_ORDER`) VALUES ( 'common_country', 'AD', '安道尔共和国', 0, 9);
INSERT INTO `DICTIONARY_OPTIONS` (`DICTIONARY_CODE`, `CODE`, `NAME`, `DEFAULT_CHECK_FLAG`, `DISPLAY_ORDER`) VALUES ( 'common_country', 'AE', '阿拉伯联合酋长国', 0, 9);
INSERT INTO `DICTIONARY_OPTIONS` (`DICTIONARY_CODE`, `CODE`, `NAME`, `DEFAULT_CHECK_FLAG`, `DISPLAY_ORDER`) VALUES ( 'common_country', 'AF', '阿富汗', 0, 9);
......大概有200多条
INSERT INTO `DICTIONARY_OPTIONS` (`DICTIONARY_CODE`, `CODE`, `NAME`, `DEFAULT_CHECK_FLAG`, `DISPLAY_ORDER`) VALUES ( 'common_country', 'AG', '安提瓜和巴布达', 0, 9);
INSERT INTO `DICTIONARY_OPTIONS` (`DICTIONARY_CODE`, `CODE`, `NAME`, `DEFAULT_CHECK_FLAG`, `DISPLAY_ORDER`) VALUES ( 'common_country', 'AI', '安圭拉', 0, 9);
INSERT INTO `DICTIONARY_OPTIONS` (`DICTIONARY_CODE`, `CODE`, `NAME`, `DEFAULT_CHECK_FLAG`, `DISPLAY_ORDER`) VALUES ( 'common_country', 'AL', '阿尔巴尼亚', 0, 9);
INSERT INTO `DICTIONARY_OPTIONS` (`DICTIONARY_CODE`, `CODE`, `NAME`, `DEFAULT_CHECK_FLAG`, `DISPLAY_ORDER`) VALUES ( 'common_country', 'AM', '亚美尼亚', 0, 9);
INSERT INTO `DICTIONARY_OPTIONS` (`DICTIONARY_CODE`, `CODE`, `NAME`, `DEFAULT_CHECK_FLAG`, `DISPLAY_ORDER`) VALUES ( 'common_country', 'AN', '荷属安的列斯群岛', 0, 9);
INSERT INTO `DICTIONARY_OPTIONS` (`DICTIONARY_CODE`, `CODE`, `NAME`, `DEFAULT_CHECK_FLAG`, `DISPLAY_ORDER`) VALUES ( 'common_country', 'AO', '安哥拉', 0, 9);
想了好多办法也没有处理好,最终打算使用程序直接处理,下面借助EmEditer的Macros进行处理。
大概过程如下:
1 新建一个空文件(rawSql.txt),paste上述sql
2 新建一个js文件,内容如下(handle.js):
function handle(str) {
var lines = str.split("\n");
var output = new Array();
for (var i=0; i<lines.length;i++) {
var slice = lines[i].split("0, 9");
output[i] = slice[0] + "0, " + i + slice[1];
}
alert(output.join(""));
}
handle(document.selection.Text);
3 打开rawSql.txt
4 menu>>Macros>>Select...,选择“handle.js”,“handle.js”就会出现在ToolBars上。
5 选中“rawSql.txt”内容,在ToolBar上点击“handle”运行脚本。
6 拷贝alert中的内容,就是处理后的内容。