易语言实现批量文本替换操作的代码
批量文本替换机的代码
.版本 2
.支持库 iext
.支持库 shell
.支持库 xplib
.程序集 窗口程序集1
.程序集变量 搜寻位置, 整数型
.程序集变量 当前被搜寻文本, 文本型
.程序集变量 起始
.程序集变量 sj1
.程序集变量 sj2
.子程序 _驱动器框_驱动器被改变
连续赋值 (驱动器框.驱动器 + “:\”, 目录框1.目录, 文件框1.目录)
.子程序 _目录框1_目录被改变
文件框1.目录 = 目录框1.目录
.子程序 _文件框1_双击选择
待替换文件列表框.插入表项 (, 目录框1.目录 + “\” + 文件框1.被选择文件, , , , )
.子程序 _类型组合框_列表项被选择
文件框1.通配符 = 类型组合框.取项目文本 (类型组合框.现行选中项)
.子程序 _系统文件选择框_被单击
.如果 (系统文件选择框.选中 = 真)
文件框1.系统 = 真
.否则
文件框1.系统 = 假
.如果结束
.子程序 _隐藏文件选择框_被单击
.如果 (隐藏文件选择框.选中 = 真)
文件框1.隐藏 = 真
.否则
文件框1.隐藏 = 假
.如果结束
.子程序 _加入_被选择
.局部变量 text, 文本型, , "0"
.局部变量 cs
.如果真 (文件框1.被选择文件 = “”)
返回 ()
.如果真结束
text = 分割文本 (文件框1.被选择文件, “;”, )
.计次循环首 (取数组成员数 (text), cs)
.如果 (取文本右边 (目录框1.目录, 1) = “\”)
待替换文件列表框.插入表项 (, 目录框1.目录 + text [cs], , , , )
.否则
待替换文件列表框.插入表项 (, 目录框1.目录 + “\” + text [cs], , , , )
.如果结束
.计次循环尾 ()
.子程序 _删除_被选择
.如果真 (待替换文件列表框.现行选中项 = -1)
返回 ()
.如果真结束
待替换文件列表框.删除表项 (待替换文件列表框.现行选中项)
.子程序 _待替换文件列表框_右键单击表项
加入.禁止 = 真
弹出菜单 (程序, , )
加入.禁止 = 假
.子程序 _文件框1_鼠标右键被放开, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
删除.禁止 = 真
清空待替换文件.禁止 = 真
弹出菜单 (程序, , )
清空待替换文件.禁止 = 假
删除.禁止 = 假
.子程序 _清空待替换文件_被选择
待替换文件列表框.全部删除 ()
.子程序 _退出_被选择
结束 ()
.子程序 _执行按钮_被单击
.局部变量 查找文本, 文本型
.局部变量 替换文本, 文本型
.局部变量 搜寻位置
.局部变量 失败数
.局部变量 cs
.局部变量 zs
.如果真 (待替换文件列表框.取表项数 () = 0)
返回 ()
.如果真结束
.如果真 (覆盖原文件选择框.选中 = 假)
.如果真 (删全部空 (输出目录编辑框.内容) = “”)
信息框 (“请选择输出目录!”, 48, )
返回 ()
.如果真结束
.如果真结束
.如果真 (删全部空 (查找文本编辑框.内容) = “”)
信息框 (“请填写欲寻找的文本!”, 48, )
返回 ()
.如果真结束
置等待鼠标 ()
sj1 = 取启动时间 ()
编辑框3.内容 = “”
进度条1.位置 = 0
进度条1.最大位置 = 待替换文件列表框.取表项数 ()
待替换文件列表框.现行选中项 = -1
当前被搜寻文本 = 查找文本编辑框.内容
zs = 待替换文件列表框.取表项数 ()
.判断循环首 (待替换文件列表框.现行选中项 ≠ 待替换文件列表框.取表项数 () - 1)
待替换文件列表框.现行选中项 = 待替换文件列表框.现行选中项 + 1
编辑框.内容 = 取字节集数据 (读入文件 (待替换文件列表框.取标题 (待替换文件列表框.现行选中项, )), #文本型)
编辑框3.加入文本 (“正在替换:” + 待替换文件列表框.取标题 (待替换文件列表框.现行选中项, ) + #换行符)
.如果真 (搜寻 (假) = 假)
编辑框.内容 = 文本替换 (编辑框.内容, 编辑框.起始选择位置 + 1, 取文本长度 (查找文本编辑框.内容), 替换文本编辑框.内容)
cs = cs + 1
.如果真结束
.判断循环首 (搜寻 (真) = 假)
编辑框.内容 = 文本替换 (编辑框.内容, 编辑框.起始选择位置 + 1, 取文本长度 (查找文本编辑框.内容), 替换文本编辑框.内容)
cs = cs + 1
编辑框.起始选择位置 = 起始
.判断循环尾 ()
.如果 (覆盖原文件选择框.选中 = 假)
.如果 (写到文件 (输出目录编辑框.内容 + “\” + 取文本右边 (待替换文件列表框.取标题 (待替换文件列表框.现行选中项, ), 取文本长度 (待替换文件列表框.取标题 (待替换文件列表框.现行选中项, )) - 倒找文本 (待替换文件列表框.取标题 (待替换文件列表框.现行选中项, ), “\”, , 真)), 到字节集 (编辑框.内容)) = 真)
编辑框3.加入文本 (“完成,替换数量” + 到文本 (cs) + “处” + #换行符)
.否则
编辑框3.加入文本 (“写到文件失败!” + #换行符)
失败数 = 失败数 + 1
.如果结束
.否则
.如果 (写到文件 (待替换文件列表框.取标题 (待替换文件列表框.现行选中项, ), 到字节集 (编辑框.内容)) = 真)
编辑框3.加入文本 (“完成,替换数量” + 到文本 (cs) + “处” + #换行符)
.否则
编辑框3.加入文本 (“覆盖原文件失败!” + #换行符)
失败数 = 失败数 + 1
.如果结束
.如果结束
待替换文件列表框.删除表项 (待替换文件列表框.现行选中项)
进度条1.位置 = 进度条1.位置 + 1
cs = 0
.判断循环尾 ()
进度条1.位置 = 进度条1.最大位置
sj2 = (取启动时间 () - sj1) ÷ 1000
编辑框3.加入文本 (#换行符 + “-------------------------------” + #换行符 + “★完毕,总数目:” + 到文本 (zs) + “,” + 到文本 (失败数) + “个文件没有替换成功,总用时” + 到文本 (sj2) + “秒”)
待替换文件列表框.现行选中项 = -1
恢复鼠标 ()
.子程序 搜寻, 逻辑型
.参数 是否为搜寻下一个, 逻辑型
搜寻位置 = 编辑框.起始选择位置 + 1
.如果真 (是否为搜寻下一个)
搜寻位置 = 搜寻位置 + 取文本长度 (替换文本编辑框.内容)
.如果真结束
.如果 (是否为搜寻下一个)
搜寻位置 = 寻找文本 (编辑框.内容, 当前被搜寻文本, 搜寻位置, 不区分大小写选择框.选中)
.否则
搜寻位置 = 倒找文本 (编辑框.内容, 当前被搜寻文本, 搜寻位置, 不区分大小写选择框.选中)
.如果结束
.如果 (搜寻位置 = -1)
返回 (真)
.否则
编辑框.起始选择位置 = 搜寻位置 - 1
编辑框.被选择字符数 = 取文本长度 (当前被搜寻文本)
起始 = 编辑框.起始选择位置
返回 (假)
.如果结束
.子程序 _输出目录按钮_被单击
.局部变量 ml, 文本型
ml = 浏览文件夹 (“请选择输出目录”, )
输出目录编辑框.内容 = ml
.子程序 _覆盖原文件选择框_被单击
.如果 (覆盖原文件选择框.选中 = 真)
输出目录编辑框.禁止 = 真
输出目录编辑框.背景颜色 = #银白
输出目录按钮.禁止 = 真
.否则
输出目录编辑框.禁止 = 假
输出目录编辑框.背景颜色 = #白色
输出目录按钮.禁止 = 假
.如果结束
.子程序 _关于_被选择
信息框 (“文本批量替换机 ” + #换行符 + #换行符 + “版本:1.0” + #换行符, #信息图标, )
.子程序 _刷新目录_被选择
_类型组合框_列表项被选择 ()
.子程序 __启动窗口_创建完毕
XP风格 (1)
运行结果:
总结
以上是 易语言实现批量文本替换操作的代码 的全部内容, 来源链接: utcz.com/z/344462.html