设为首页收藏本站帮助中心
查看: 33|回复: 0
收起左侧

易语言快速提取释放程序自身末尾的GB级数据到文件 (用于自解压安装包,不支持独立编译)

[复制链接]
发表于 2020-3-16 14:05:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?加入我们

x
111.png

  1. .版本 2

  2. .程序集 程序集1

  3. .子程序 _启动子程序, 整数型

  4. .如果真 (是否为调试版 ())
  5.     信息框 (“请编译后运行!”, 0, , )
  6.     返回 (0)
  7. .如果真结束
  8. .如果 (取自身末尾数据到文件 (“数据.bin”, 1073741824))
  9.     信息框 (“提取成功!”, 0, , )
  10. .否则
  11.     信息框 (“提取失败!”, 0, , )
  12. .如果结束


  13. 返回 (0)  ' 可以根据您的需要返回任意数值

  14. .子程序 取自身末尾数据到文件, 逻辑型, 公开, 编译后使用cmd的copy /b 命令将数据与自身程序合并 (静态编译若无法运行请更换链接器,不支持独立编译)
  15. .参数 文件名, 文本型, , 如果文件存在将清除并覆盖
  16. .参数 末尾字节数, 整数型
  17. .局部变量 自身文件名, 文本型
  18. .局部变量 自身文件号, 整数型
  19. .局部变量 自身长度, 整数型
  20. .局部变量 输出文件号, 整数型
  21. .局部变量 字节集缓存, 字节集
  22. .局部变量 缓存大小, 整数型

  23. 自身文件名 = 取运行目录 () + “\” + 取执行文件名 ()
  24. 自身长度 = 取文件尺寸 (自身文件名)
  25. .如果真 (末尾字节数 > 自身长度 或 末尾字节数 ≤ 0 或 文件名 = “” 或 是否为调试版 ())
  26.     返回 (假)
  27. .如果真结束
  28. 自身文件号 = 打开文件 (自身文件名, #读入, #禁止写)
  29. .如果真 (自身文件号 = 0)
  30.     返回 (假)
  31. .如果真结束
  32. .如果真 (移动读写位置 (自身文件号, #文件首, 取文件长度 (自身文件号) - 末尾字节数) = 假)
  33.     关闭文件 (自身文件号)
  34.     返回 (假)
  35. .如果真结束
  36. 输出文件号 = 打开文件 (文件名, #重写, #禁止写)
  37. .如果真 (输出文件号 = 0)
  38.     关闭文件 (自身文件号)
  39.     删除文件 (文件名)
  40.     返回 (假)
  41. .如果真结束
  42. .判断循环首 (真)
  43.     字节集缓存 = 读入字节集 (自身文件号, 16777216)
  44.     .如果真 (取字节集长度 (字节集缓存) = 0)
  45.         跳出循环 ()
  46.     .如果真结束
  47.     .如果真 (写出字节集 (输出文件号, 字节集缓存) = 假)
  48.         关闭文件 (输出文件号)
  49.         关闭文件 (自身文件号)
  50.         删除文件 (文件名)
  51.         返回 (假)
  52.     .如果真结束

  53. .判断循环尾 ()
  54. 关闭文件 (输出文件号)
  55. 关闭文件 (自身文件号)
  56. 返回 (真)
复制代码

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则