|
- .版本 2
- .支持库 spec
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- ' 文件打包解包数据格式: 开头为文件名(文本型不含路径) 遇到空字符终止,接下来4字节为数据长度,再继续为文件数据,以此类推。
- 写到文件 (“font.bin”, 文件打包 (“C:\WINDOWS\Fonts”))
- 创建目录 (“font”)
- 文件解包 (“font”, 读入文件 (“font.bin”))
- .子程序 枚举文件, 文本型
- .参数 目录, 文本型
- .局部变量 目录表, 文本型
- .如果真 (运行控制台程序 (“cmd /c dir /b ” + #引号 + 目录 + “\*” + #引号, 目录表, , ) = 假)
- 返回 (“”)
- .如果真结束
- 返回 (目录表)
- .子程序 文件打包, 字节集, 公开, 将一个目录中的多个文件以及文件名打包成一个文件
- .参数 目录路径, 文本型, , 不支持子目录以及文件属性,末尾不含斜杠
- .局部变量 文件列表, 文本型, , "0"
- .局部变量 文件数, 整数型
- .局部变量 计数, 整数型
- .局部变量 数据长度, 整数型
- .局部变量 文件长度, 整数型
- .局部变量 内存首地址, 整数型
- .局部变量 当前指针, 整数型
- .局部变量 返回值, 字节集
- .局部变量 数据, 字节集
- .局部变量 长度, 整数型
- 目录路径 = 子文本替换 (目录路径, “/”, “\”, , , 真)
- 文件列表 = 分割文本 (枚举文件 (目录路径), #换行符, )
- 文件数 = 取数组成员数 (文件列表)
- 数据长度 = 0
- .计次循环首 (文件数, 计数)
- 文件长度 = 取文件尺寸 (目录路径 + “\” + 文件列表 [计数])
- .如果真 (文件长度 ≥ 0)
- 数据长度 = 数据长度 + 取文本长度 (文件列表 [计数]) + 1 + 文件长度 + 4
- .如果真结束
- .计次循环尾 ()
- 内存首地址 = 申请内存 (数据长度, 真)
- 当前指针 = 内存首地址
- .计次循环首 (文件数, 计数)
- 数据 = 读入文件 (目录路径 + “\” + 文件列表 [计数])
- 长度 = 取字节集长度 (数据)
- 写到内存 (文件列表 [计数], 当前指针, )
- 当前指针 = 当前指针 + 取文本长度 (文件列表 [计数]) + 1
- 写到内存 (长度, 当前指针, )
- 当前指针 = 当前指针 + 4
- 写到内存 (数据, 当前指针, )
- 当前指针 = 当前指针 + 长度
- .计次循环尾 ()
- 返回值 = 指针到字节集 (内存首地址, 数据长度)
- 释放内存 (内存首地址)
- 返回 (返回值)
- .子程序 文件解包, 逻辑型, 公开, 将一个文件解包成多个文件到指定目录
- .参数 目录名, 文本型, , 末尾不含斜杠
- .参数 数据, 字节集, , 提供打包后的数据
- .局部变量 指针, 整数型
- .局部变量 结束指针, 整数型
- .局部变量 当前指针, 整数型
- .局部变量 文件名, 文本型
- .局部变量 数据长度, 整数型
- .局部变量 文件数据, 字节集
- 指针 = 取变量数据地址 (数据)
- 当前指针 = 指针
- 结束指针 = 指针 + 取字节集长度 (数据)
- .循环判断首 ()
- 文件名 = 指针到文本 (当前指针)
- 当前指针 = 当前指针 + 取文本长度 (文件名) + 1
- 数据长度 = 指针到整数 (当前指针)
- 当前指针 = 当前指针 + 4
- 文件数据 = 指针到字节集 (当前指针, 数据长度)
- 当前指针 = 当前指针 + 数据长度
- .如果真 (写到文件 (目录名 + “\” + 文件名, 文件数据) = 假)
- 返回 (假)
- .如果真结束
- .循环判断尾 (当前指针 < 结束指针)
- 返回 (真)
复制代码
|
|