之前在易语言官方论坛发了个自动备份“~~AutoBak.tmp”文件的工具,查看详情。
易语言每次调试或者定时备份时都会在临时目录生成一个名为~~AutoBak.tmp的文件,正常关闭IDE后该文件自动删除,非正常关闭后该文件还保留着,可以在下次打开易语言时使用这个备份文件。但是,这并不保险,存在于临时目录中的文件随时都可能被清理,而且一旦调试另一个程序的代码就会被该程序代替。本工具的用途就是自动备份该文件,尽量防止源代码丢失。
源码文件下载:自动备份~~AutoBak.tmp文件,易IDE崩溃也不怕!
主要源码示例:
- .程序集 窗口程序集1
- .子程序 _窗口1_创建完毕
- 设置窗口透明度 (窗口1.取窗口句柄 (), 200)
- 编辑框1.内容 = 取特定目录 (#临时文件目录) + “~~AutoBak.tmp”
- 编辑框2.内容 = “D:\文件\自动备份”
- .子程序 _窗口1_位置被改变
- 窗口2.移动 (窗口1.左边, 窗口1.顶边, , )
- .子程序 _透明标签2_鼠标左键被放开,逻辑型
- .参数 横向位置,整数型
- .参数 纵向位置,整数型
- .参数 功能键状态,整数型
- 窗口2.位置 = 2
- .子程序 _透明标签1_鼠标左键被放开,逻辑型
- .参数 横向位置,整数型
- .参数 纵向位置,整数型
- .参数 功能键状态,整数型
- .如果真 (信息框 (“退出备份程序?”, #询问图标 + #是否钮, “退出”) = #是钮)
- 窗口2.销毁 ()
- .如果真结束
- .子程序 _透明标签3_鼠标左键被放开,逻辑型
- .参数 横向位置,整数型
- .参数 纵向位置,整数型
- .参数 功能键状态,整数型
- 通用对话框1.初始目录 = 编辑框1.内容
- .如果真 (通用对话框1.打开 ())
- 编辑框1.内容 = 通用对话框1.文件名
- .如果真结束
- .子程序 _透明标签4_鼠标左键被放开,逻辑型
- .参数 横向位置,整数型
- .参数 纵向位置,整数型
- .参数 功能键状态,整数型
- 编辑框2.内容 = 浏览文件夹 (“选择备份路径”, )
- .子程序 _透明标签5_鼠标左键被放开,逻辑型
- .参数 横向位置,整数型
- .参数 纵向位置,整数型
- .参数 功能键状态,整数型
- .如果真 (取反 (改变目录 (删首尾空 (编辑框2.内容))))
- 信息框 (“备份路径不存在!”, #警告图标, “路径不存在”)
- 返回 ()
- .如果真结束
- .如果真 (时钟1.时钟周期 = 0)
- 时钟1.时钟周期 = 100
- 透明标签5.标题 = “已开启”
- 透明标签6.标题 = “停止备份”
- 连续赋值 (真, 编辑框1.禁止, 编辑框2.禁止, 编辑框3.禁止)
- .如果真结束
- .子程序 _透明标签6_鼠标左键被放开,逻辑型
- .参数 横向位置,整数型
- .参数 纵向位置,整数型
- .参数 功能键状态,整数型
- .如果真 (时钟1.时钟周期 > 0)
- 时钟1.时钟周期 = 0
- 透明标签5.标题 = “开启备份”
- 透明标签6.标题 = “已停止”
- 上次备份 = “”
- 清除数组 (所有备份)
- 连续赋值 (假, 编辑框1.禁止, 编辑框2.禁止, 编辑框3.禁止)
- .如果真结束
- .子程序 _时钟1_周期事件
- .局部变量 当前文件,文本型
- .局部变量 文件名称,文本型
- .局部变量 本次备份,文本型
- .局部变量 i
- 当前文件 = 删首尾空 (编辑框1.内容)
- .如果真 (文件是否存在 (当前文件))
- 本次备份 = 格式化时间 (取文件时间 (当前文件)) + 到文本 (取文件尺寸 (当前文件))
- .如果真 (本次备份 ≠ 上次备份)
- 文件名称 = “AutoBak_” + 格式化时间 (取现行时间 ()) + “_” + 到文本 (取启动时间 ()) + “.tmp”
- .如果真 (复制文件 (当前文件, 文件名称)) ' 开启备份时已改变目录到备份路径
- 上次备份 = 本次备份
- 加入成员 (所有备份, 文件名称)
- .如果真结束
- .如果真结束
- .如果真结束
- .如果真 (到整数 (编辑框3.内容) > 0 且 取数组成员数 (所有备份) > 到整数 (编辑框3.内容))
- i = 取数组成员数 (所有备份) - 到整数 (编辑框3.内容)
- .计次循环首 (i, )
- 删除文件 (所有备份 [1])
- 删除成员 (所有备份, 1, 1)
- .计次循环尾 ()
- .如果真结束
- .子程序 格式化时间,文本型
- .参数 时间,日期时间型
- .局部变量 格式,文本型
- .局部变量 分割,整数型,,"6"
- .局部变量 i
- 分割 [1] = 取年份 (时间)
- 分割 [2] = 取月份 (时间)
- 分割 [3] = 取日 (时间)
- 分割 [4] = 取小时 (时间)
- 分割 [5] = 取分钟 (时间)
- 分割 [6] = 取秒 (时间)
- .计次循环首 (6, i)
- .如果真 (分割 [i] ≤ 9)
- 格式 = 格式 + “0”
- .如果真结束
- 格式 = 格式 + 到文本 (分割 [i])
- .计次循环尾 ()
- 返回 (格式)
- #鸿言_易代码格式化模块 HyStudio.Net
© 著作权归作者所有
文章评论(2)
:grin: 多谢前辈的赐教 :grin:
@求索 @求索 不敢当