(转)table.unique()函数功能:文本去重复,分割保存
By
admin
at 2018-08-03 • 0人收藏 • 1636人看过
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=394;bottom=469;acceptfiles=1)
winform.add(
button={cls="button";text="去重复";left=298;top=28;right=380;bottom=65;z=2};
button2={cls="button";text="分割";left=295;top=286;right=377;bottom=323;z=4};
edit={cls="edit";left=5;top=7;right=283;bottom=462;autohscroll=false;edge=1;multiline=1;vscroll=1;z=1};
edit2={cls="edit";text="100";left=341;top=250;right=387;bottom=269;edge=1;num=1;z=5};
static={cls="static";left=302;top=81;right=372;bottom=100;bgcolor=10789024;color=32768;z=3};
static2={cls="static";text="分割行数";left=287;top=251;right=340;bottom=266;transparent=1;z=6}
)
/*}}*/
import fsys.dlg
winform.show()
winform.edit.limit = -1//去掉文本框字符数限制
winform.onDropFiles = function(files){//接收拖放的文件
for(i=1;#files;1){//支持拖放多个文件
winform.edit.appendText(string.trim(string.load(files[i]),'\r\n')+'\r\n')//去掉多余的\r\n
}
winform.static.text = winform.edit.lineCount
}
winform.button.oncommand = function(id,event){
var tmptab = string.split(winform.edit.text,'<\r\n>')//分割文本到数组
tmptab = table.unique(tmptab)//利用库函数去重复-_-
winform.edit.text = string.join(tmptab,'\r\n')//把字符数组串起来
winform.static.text = winform.edit.lineCount
}
winform.button2.oncommand = function(id,event){
if(!#winform.edit.text || !#winform.edit2.text) return ;//逗我呢,没数据就早点返回
var filename = fsys.dlg.save("文本文件|*.txt","保存数据")
if(filename){//在文件对话框输入了文件名字且点击了保存按钮
var splittab = io.splitpath(filename)//拆分文件名
var tmptab = string.split(winform.edit.text,'<\r\n>')//分割文本到数组
var savetab = {}//用来存储数据
var filei = 1//用来计数
for(i=1;#tmptab;1){
table.push(savetab,tmptab[i])
if(i % winform.edit2.text == 0){//到指定行数了,开始写出保存
string.save(string.concat(splittab.dir,splittab.name,filei,".txt"), string.join(savetab,'\r\n'))
savetab = {}//重定义
filei++//增加计数
}
}
string.save(string.concat(splittab.dir,splittab.name,filei,".txt"), string.join(savetab,'\r\n'))
winform.msgbox("保存完毕")//打完收功
}
}
win.loopMessage();转自某K....
登录后方可回帖