.版本 2
.支持库 spec
.支持库 iext
.支持库 iconv
.支持库 shell
.程序集 窗口程序集_启动窗口
.程序集变量 格式数组, 文本型, , "0"
.程序集变量 列表数组, 文件编码, , "0"
.子程序 __启动窗口_创建完毕
格式数组 = { “html”, “htm”, “asp”, “aspx”, “php”, “txt”, “tpl”, “ini”, “js”, “xml” }
编辑框1.内容 = 取运行目录 ()
调试输出 (格式数组)
.子程序 _按钮2_被单击
.局部变量 n, 整数型
.局部变量 s, 整数型
.局部变量 temp, 文件编码
.局部变量 srt, 文本型
全局停止 = 假
.如果 (编辑框1.内容 = “” 或 编辑框2.内容 = “”)
信息框 (“目录或关键字不能为空!”, 0, “警告:”, )
.否则
.如果 (按钮2.标题 = “开始扫描”)
srt = 编辑框1.内容
.如果真 (取文本右边 (srt, 2) ≠ “:\”)
.如果真 (取文本右边 (srt, 1) = “\”)
编辑框1.内容 = 取文本左边 (srt, 取文本长度 (srt) - 1)
.如果真结束
.如果真结束
.如果 (单选框1.选中 = 真) ' 搜索目录方式!
超级列表框1.全部删除 ()
按钮2.标题 = “停止扫描”
开始处理 ()
.否则
清除数组 (列表数组) ' ////////////////////////////列表搜索方式!
s = 超级列表框1.取表项数 ()
.如果 (s > 0)
.计次循环首 (s, n)
temp.文件路径 = 超级列表框1.取标题 (n - 1, 1)
temp.文件编码 = 超级列表框1.取标题 (n - 1, 2)
加入成员 (列表数组, temp)
处理事件 ()
.计次循环尾 ()
超级列表框1.全部删除 ()
按钮2.标题 = “停止扫描”
搜索列表 ()
.否则
信息框 (“列表为空,不能搜索,请先使用[搜索目录]进行筛选!”, 0, “提示:”, )
.如果结束
.如果结束
按钮2.标题 = “开始扫描”
.否则
全局停止 = 真
按钮2.标题 = “开始扫描”
延迟 (100)
.如果结束
.如果结束
.子程序 开始处理
.局部变量 根目录, 文本型
.局部变量 bool, 逻辑型
根目录 = 编辑框1.内容
调试输出 (12223)
bool = 假
.如果 (取文本右边 (根目录, 2) = “:\”)
bool = 真
.否则
bool = 文件是否存在 (根目录)
.如果结束
.如果真 (bool)
编辑框1.禁止 = 真
编辑框2.禁止 = 真
超级列表框1.全部删除 ()
.如果真 (取文本右边 (根目录, 1) ≠ “\”)
根目录 = 根目录 + “\”
.如果真结束
' 调试输出 (根目录)
子程序搜索文件 (根目录)
' 调试输出 (“扫描完毕!”)
编辑框2.禁止 = 假
编辑框1.禁止 = 假
.如果真 (全局停止 = 假)
信息框 (“扫描完毕!”, 0, “提示:”, )
.如果真结束
.如果真结束
.子程序 子程序搜索文件
.参数 指定的路径, 文本型
.局部变量 文件名, 文本型
.局部变量 文件夹名, 文本型
.局部变量 分割结果, 文本型, , "0"
.局部变量 文本数组, 文本型, , "0"
.局部变量 a, 文本型
.局部变量 格式判断, 逻辑型
.局部变量 n, 整数型
.局部变量 str, 文本型, , "0"
.如果真 (取文本右边 (指定的路径, 1) ≠ “\”)
指定的路径 = 指定的路径 + “\”
.如果真结束
' ==============以下为搜索文件夹================
文件夹名 = 寻找文件 (指定的路径 + “*.*”, #子目录)
.判断循环首 (文件夹名 ≠ “”)
.如果真 (取文本左边 (文件夹名, 1) ≠ “.”)
子程序搜索文件 (指定的路径 + 文件夹名)
.如果真结束
处理事件 ()
文件夹名 = 寻找文件 (, #子目录)
.判断循环尾 ()
' ==============以下为搜索文件=================
文件名 = 寻找文件 (指定的路径 + “*.*”, )
.判断循环首 (文件名 ≠ “”)
处理事件 ()
' 调试输出 (文件名) ' 此处为指定目录下 所有的文件的文件名
.如果真 (寻找文本 (文件名, 编辑框2.内容, 1, 真) ≠ -1) ' 为真 表示当前文件名符合搜索的条件
显示到列表 (指定的路径 + 文件名, “[文件名]符合条件”)
.如果真结束
n = 倒找文本 (文件名, “.”, , 真)
.如果真 (n = -1)
n = 取文本长度 (文件名)
.如果真结束
a = 取文本右边 (文件名, 取文本长度 (文件名) - n)
' /////a为纯格式
' 调试输出 (a)
格式判断 = 假
.计次循环首 (取数组成员数 (格式数组), n)
.如果真 (格式数组 [n] = a)
格式判断 = 真
跳出循环 ()
.如果真结束
.计次循环尾 ()
.如果真 (格式判断 = 真)
文本寻找 (指定的路径 + 文件名)
.如果真结束
.如果真 (全局停止 = 真)
跳出循环 ()
.如果真结束
处理事件 ()
文件名 = 寻找文件 (, )
.判断循环尾 ()
.子程序 搜索列表
.局部变量 n, 整数型
.计次循环首 (取数组成员数 (列表数组), n)
.如果真 (全局停止 = 真)
跳出循环 ()
.如果真结束
.如果 (寻找文本 (列表数组 [n].文件路径, 编辑框2.内容, 1, 真) ≠ -1) ' 为真 表示当前文件名符合搜索的条件
显示到列表 (列表数组 [n].文件路径, “[文件名]符合条件”)
.否则
文本寻找 (列表数组 [n].文件路径)
.如果结束
处理事件 ()
.计次循环尾 ()
' 文本寻找 (指定的路径 + 文件名)
.子程序 文本寻找
.参数 要寻找文本的文件名, 文本型
.局部变量 a, 字节集, , , gb2312
.局部变量 b, 字节集, , , utf8
.局部变量 R, 逻辑型
.局部变量 zz, 字节集
.局部变量 文件字节集, 字节集
.局部变量 x
.局部变量 y
.局部变量 编码, 文本型
' 编码 = “”
编码 = “”
zz = 到字节集 (编辑框2.内容)
a = zz
b = 编码转换 (zz, #编码_GB2312, #编码_UTF_8, R)
文件字节集 = 读入文件 (要寻找文本的文件名)
' 调试输出 (a, b)
' 延迟 (1000000000)
y = -1
x = 寻找字节集 (文件字节集, a, 1)
.如果真 (x = -1)
y = 寻找字节集 (文件字节集, b, 1)
.如果真结束
y = 寻找字节集 (文件字节集, b, 1)
.如果真 (y ≠ -1 或 x ≠ -1)
.如果 (x > -1)
编码 = “gb2312”
.否则
编码 = “UTF8”
.如果结束
' 调试输出 (“位置”, x, y)
显示到列表 (要寻找文本的文件名, 编码)
.如果真结束
.子程序 显示到列表
.参数 文件路径, 文本型
.参数 字符编码, 文本型
.局部变量 a, 整数型
a = 超级列表框1.插入表项 (-1, 到文本 (超级列表框1.取表项数 () + 1), , , , )
超级列表框1.置标题 (a, 1, 文件路径)
超级列表框1.置标题 (a, 2, 字符编码)
.子程序 _超级列表框1_鼠标右键被放开, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.子程序 _超级列表框1_右键单击表项
.局部变量 a, 整数型
a = 超级列表框1.现行选中项
.如果真 (a ≠ -1)
.如果真 (取文本长度 (超级列表框1.取标题 (a, 1)) > 2)
弹出菜单 (右键菜单, , )
.如果真结束
.如果真结束
.子程序 _打开文件_被选择
.局部变量 a, 文本型
.局部变量 n, 整数型
.局部变量 bb, 文本型
.局部变量 bool, 逻辑型
bool = 假
a = 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
.如果真 (a ≠ “”)
' 执行 (4, a, , , 2)
n = 倒找文本 (a, “.”, , 真)
.如果真 (n = -1)
n = 取文本长度 (a)
.如果真结束
bb = 取文本右边 (a, 取文本长度 (a) - n)
' /////bb为纯格式
调试输出 (bb)
.计次循环首 (取数组成员数 (格式数组), n)
.如果真 (格式数组 [n] = bb)
运行 (“notepad.exe ” + a, 假, )
bool = 真
跳出循环 ()
.如果真结束
.计次循环尾 ()
.如果真 (bool = 假)
信息框 (“本格式不支持直接运行!”, 0, “提示:”, )
.如果真结束
.如果真结束
.子程序 _打开所在文件夹_被选择
.局部变量 a, 文本型
.局部变量 temp, 文本型, , "0"
.局部变量 n, 整数型
.局部变量 b, 文本型
a = 超级列表框1.取标题 (超级列表框1.现行选中项, 1)
.如果真 (a ≠ “”)
temp = 分割文本 (a, “\”, )
.如果真 (取数组成员数 (temp) > 1)
.计次循环首 (取数组成员数 (temp) - 1, n)
.如果真 (temp [n] ≠ “”)
b = b + temp [n] + “\”
.如果真结束
.计次循环尾 ()
执行 (4, b, , , )
.如果真结束
.如果真结束
.子程序 _删除当前项_被选择
超级列表框1.删除表项 (超级列表框1.现行选中项)
.子程序 _超级列表框1_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 a, 整数型
a = 超级列表框1.现行选中项
.如果真 (a ≠ -1)
_打开文件_被选择 ()
.如果真结束
.子程序 _按钮1_被单击
.局部变量 a, 文本型
a = 浏览文件夹 (“指定源码所在目录(不可直接指定磁盘):”, 假)
.如果 (a = “”)
编辑框1.内容 = “”
.否则
编辑框1.内容 = a
.如果结束
.子程序 _按钮3_被单击
.局部变量 temp, 文件编码
.局部变量 s, 整数型
.局部变量 n, 整数型
.局部变量 原文本, 文本型
.局部变量 新文本, 文本型
.局部变量 err, 文本型, , "0"
.局部变量 原字节集, 字节集
.局部变量 新字节集, 字节集
.局部变量 a, 文本型
.如果 (编辑框3.内容 = “”)
信息框 (“用作替换的内容,不得为空!”, 0, “提示:”, )
.否则
清除数组 (列表数组)
s = 超级列表框1.取表项数 ()
.如果 (s > 0)
编辑框3.禁止 = 真
编辑框4.禁止 = 真
按钮3.禁止 = 真
.计次循环首 (s, n)
temp.文件路径 = 超级列表框1.取标题 (n - 1, 1)
temp.文件编码 = 超级列表框1.取标题 (n - 1, 2)
加入成员 (列表数组, temp)
处理事件 ()
.计次循环尾 ()
延迟 (100)
.计次循环首 (取数组成员数 (列表数组), n)
a = “替换文件[” + 列表数组 [n].文件路径 + “]中.....”
标签7.标题 = a
.如果 (列表数组 [n].文件编码 = “gb2312”)
原文本 = 到文本 (读入文件 (列表数组 [n].文件路径))
新文本 = 子文本替换 (原文本, 编辑框3.内容, 编辑框4.内容, 1, , 真)
.如果真 (写到文件 (列表数组 [n].文件路径, 到字节集 (新文本)) = 假)
加入成员 (err, 列表数组 [n].文件路径)
.如果真结束
.否则
原字节集 = 读入文件 (列表数组 [n].文件路径)
新字节集 = 子字节集替换 (原字节集, 编码转换 (到字节集 (编辑框3.内容), #编码_GB2312, #编码_UTF_8, ), 编码转换 (到字节集 (编辑框4.内容), #编码_GB2312, #编码_UTF_8, ), 1, )
.如果真 (写到文件 (列表数组 [n].文件路径, 新字节集) = 假)
加入成员 (err, 列表数组 [n].文件路径)
.如果真结束
.如果结束
处理事件 ()
.计次循环尾 ()
标签7.标题 = “”
编辑框3.禁止 = 假
编辑框4.禁止 = 假
按钮3.禁止 = 假
.如果 (取数组成员数 (err) = 0)
信息框 (“替换完毕!”, 0, “提示:”, )
.否则
a = “”
.计次循环首 (取数组成员数 (err), n)
a = a + err [n] + #换行符
.计次循环尾 ()
写到文件 (取运行目录 () + “\error.txt”, 到字节集 (a))
信息框 (“有文件发生替换错误,详见本目录下error.txt”, 0, “提示:”, )
.如果结束
.否则
信息框 (“列表为空,没有要替换的内容!”, 0, “提示:”, )
.如果结束
.如果结束
.子程序 __启动窗口_将被销毁
结束 ()
.子程序 _单选框2_被单击
编辑框2.内容 = “”