为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

易语言文件枚举W 修复各种问题

三叶资源网 2021-04-18 13:37:54 易语言例程 1049 ℃ 0 评论
.版本 2
.支持库 spec

.程序集 程序集1

.子程序 _启动子程序, 整数型, , 请在本子程序中放置动态链接库初始化代码
.局部变量 DATA, 字节集, , "0"
.局部变量 i, 整数型
.局部变量 S, 字节集, , "3"

S [1] = 编码_Ansi到Unicode (“*.otf”, )
S [2] = 编码_Ansi到Unicode (“*.ttc”, )
S [3] = 编码_Ansi到Unicode (“*.ttf”, )
文件_枚举W_改 (编码_Ansi到Unicode (“D:\Fonts\超级字体整合包 XZ”, ), S, DATA, 真, 真)
.' 计次循环首 (取数组成员数 (DATA), i)
    ' 调试输出 (编码_Unicode到Ansi (DATA [i]))
.' 计次循环尾 ()
调试输出 (取数组成员数 (DATA))
返回 (0)  ' 返回值被忽略。

.子程序 文件_枚举W_改, 整数型, 公开, 枚举某个目录下的指定类型文件,成功返回文件数组。
.参数 欲寻找的目录, 字节集
.参数 欲寻找的文件名, 字节集, 参考 数组, *为寻找全部文件
.参数 文件数组, 字节集, 参考 可空 数组
.参数 是否带路径, 逻辑型, 可空, 为真时返回文件为绝对路径
.参数 是否遍历子目录, 逻辑型, 可空, 为真时文件数组不主动清空
.局部变量 szPath, 字节集
.局部变量 FileName, 字节集
.局部变量 hFind, 整数型
.局部变量 FindFileData, WIN32_FIND_DATAW
.局部变量 cFileName, 字节集
.局部变量 bRes, 逻辑型
.局部变量 i, 整数型

szPath = 删除Unicode结尾空白字节 (欲寻找的目录)
.如果真 (取字节集右边 (szPath, 2) ≠ { 92, 0 })
    szPath = szPath + { 92, 0 }
.如果真结束
.如果真 (是否遍历子目录 = 假)
    清除数组 (文件数组)
.如果真结束

.计次循环首 (取数组成员数 (欲寻找的文件名), i)
    FileName = 删除Unicode结尾空白字节 (欲寻找的文件名 [i])
    hFind = FindFirstFileW (szPath + FileName + { 0, 0 }, FindFileData)
    .如果真 (hFind ≠ #INVALID_HANDLE_VALUE)
        .循环判断首 ()
            cFileName = 到字节集 (FindFileData.cFileName)
            cFileName = 删除Unicode结尾空白字节 (cFileName)
            .如果真 (cFileName ≠ { 46, 0 } 且 cFileName ≠ { 46, 0, 46, 0 })
                .如果真 (位与 (FindFileData.dwFileAttributes, #FILE_ATTRIBUTE_ARCHIVE) ≠ 0)
                    .判断开始 (是否带路径)
                        加入成员 (文件数组, szPath + cFileName + { 0, 0 })
                    .默认
                        加入成员 (文件数组, cFileName + { 0, 0 })
                    .判断结束

                .如果真结束

            .如果真结束
            bRes = FindNextFileW (hFind, FindFileData)
        .循环判断尾 (bRes)
    .如果真结束
    FindClose (hFind)
    bRes = 假
.计次循环尾 ()
hFind = FindFirstFileW (szPath + { 42, 0 } + { 0, 0 }, FindFileData)
.如果真 (hFind = #INVALID_HANDLE_VALUE)
    返回 (0)
.如果真结束
.循环判断首 ()
    cFileName = 到字节集 (FindFileData.cFileName)
    cFileName = 删除Unicode结尾空白字节 (cFileName)
    .如果真 (cFileName ≠ { 46, 0 } 且 cFileName ≠ { 46, 0, 46, 0 })
        .如果真 (是否遍历子目录 且 位与 (FindFileData.dwFileAttributes, #FILE_ATTRIBUTE_DIRECTORY) ≠ 0)
            文件_枚举W_改 (szPath + cFileName + { 92, 0 }, 欲寻找的文件名, 文件数组, 是否带路径, 是否遍历子目录)
        .如果真结束

    .如果真结束
    bRes = FindNextFileW (hFind, FindFileData)
.循环判断尾 (bRes)
FindClose (hFind)

返回 (取数组成员数 (文件数组))

.子程序 删除Unicode结尾空白字节, 字节集
.参数 欲被处理的字节集, 字节集
.局部变量 i, 整数型
.局部变量 len, 整数型
.局部变量 ptr, 整数型
.局部变量 short, 短整数型

.如果真 (取字节集长度 (欲被处理的字节集) < 2)
    返回 ({  })
.如果真结束
ptr = 取指针_字节集型 (欲被处理的字节集)

len = 取字节集长度 (欲被处理的字节集) ÷ 2
.计次循环首 (len, i)
    short = 指针_到短整数型_汇编 (ptr)
    .如果真 (short = 0)
        跳出循环 ()
    .如果真结束

    ptr = ptr + 2
.计次循环尾 ()
.如果真 (i > len)
    返回 (欲被处理的字节集)
.如果真结束

返回 (取字节集左边 (欲被处理的字节集, (i - 1) × 2))

.子程序 取指针_字节集型, 整数型, 公开, 取到的是变量堆地址,和 取变量数据地址() 一样
.参数 字节集, 字节集, 参考

置入代码 ({ 139, 69, 8, 139, 0, 133, 192, 15, 132, 3, 0, 0, 0, 131, 192, 8, 201, 194, 4, 0 })
返回 (0)

.子程序 指针_到短整数型_汇编, 短整数型, 公开
.参数 指针, 整数型

置入代码 ({ 139, 69, 8, 139, 0, 201, 194, 4, 0 })
' mov eax , dword ptr [ebp+08h]
' mov eax , dword ptr [eax]
' leave
' retn 0004h
返回 (0)

@创世之神


文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
API源码黑客乐玩模块动态调用汇编桌面小精灵HP-socket3eWOW64ExtCOM对象组件汇编中文指令伊对APP协议乐玩插件登录微信Hook验证码识别解析DLL文本邮箱轰炸器远程文件管理sqlite3取QQKEYsock5
最新评论