⽤UltraEdit的宏从⼤⽂件中提取内容
UltraEdit这个软件相信多数朋友都熟悉,但基本上都是基于⼀般应⽤:⽐如编辑相关的代码、⽂本,查替换等操作。今天正好有⼀个数据库导出的⽂本,有⼏⼗万⾏数据,需要查相关的客户信息,如果⽂件⾏数不多的话⽤excel筛选下很⽅便,但这次⾏数太多,需要分隔成⼏个⽂件筛选后再合并,⽐较⿇烦。就想到了宏...
⾸先确定⼀个思路,把原始数据⾏中含有所需某个客户号的⾏,⼀⾏⼀⾏的复制到⼀个新的⽂件中;大文件发送
然后开始创建宏:点击“宏”菜单中的“编辑宏”,在弹出的窗⼝中点击“新建宏”,输⼊宏名称,⽐如:客户查,点“确定”,默认情况下会出现以下3⾏:
InsertMode
ColumnModeOff
HexOff
继续在下⾯添加上⾃⼰的语句来实现我们需要的功能,在右边是语句的作⽤:
NewFile 创建⼀个新⽂档,同时活动标签为新⽂档
NextDocument 切换到下⼀个⽂件标签⽂档,即返回到原始的数据⽂档
Top 到⽂档的起始位置
Loop 0 设置循环,后⾯的0指⽆限次循环
UnixReOff 切换正则表达式到 UltraEdit 样式的正则表达式(⾮ Unix)
Find "30071456" 查客户编号为30071456
IfFound 如果查到
SelectLine 选中当前活动⾏
Copy 复制选中内容
NextDocument 切换到下⼀个标签,即新建的⽂档
Paste 把粘贴板中的内容复制到光标所在位
NextDocument 切换到下⼀个标签,即返回到原始⽂档
Key RIGHT ARROW 发送⼀个→,即光标移动到下⼀⾏开始处
Else 如果没到
ExitLoop 结束循环
EndIf 与前⾯的ifFound对应
EndLoop 与前⾯的Loop对应
NextDocument 切换到下⼀个标签,即新建⽂档
好了,代码就是这些,点击“关闭”,再确认更新宏,试试效果,点击宏菜单中的再次运⾏,稍等⼀会。。(可以喝⼏⼝茶,也可以闭⽬养神,剩下的宏帮你完成)
哈哈,结果出来了,所需的⼏百⾏数据就躺在新的⽂档⾥。
注意:
宏运⾏过程中,你可以正常的使⽤其他软件,让UltraEdit在“幕后”运⾏,但需要注意的⼀点就是:不能对剪贴板进⾏“写”操作,就是不能再剪贴或复制其它东西。各位朋友可以看到在添加的宏语句当中,其
中第9⾏和第11⾏分别是复制查到的⾏和粘贴剪贴板中的内容到新⽂档中,虽然这个间隔⾮常短,但如果宏刚好复制好查到的⾏,⽽你要新复制了⼀个东东,就会出现粘贴到新⽂档中的数据是你刚刚复制的东东,⽽不是宏查到的内容!!
发布评论