当前位置: 主页 > 百科 > 计算机编程 > 易语言源码 >
-12 Comments

源码寻找替换工具

发布于:2016-07-04  |   作者:http://www.zxjsq.net  |   已聚集:人围观

.版本 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.内容 = “”


标签:                   喜欢:收藏