易下载引擎模块写的多线程断点续传

易语言 2020-08-18 20:57:09

易下载引擎模块写的多线程断点续传

下载子结构.编号GUID = 生成新的GUID ()
下载子结构.下载地址 = 下载地址_编辑框.内容
下载子结构.本地文件路径 = 保存到_编辑框.内容 + “\” + 文件名_编辑框.内容
下载子结构.标题 = 文件名_编辑框.内容
下载子结构.已下载大小 = 0
下载子结构.总大小 = 易下载.取文件大小 (下载地址_编辑框.内容) ' 也可以填写0,这个以后真正下载的时候,还会自动获取的
下载子结构.下载进度 = 0
下载子结构.状态 = #状态_已暂停
下载子结构.文件名 = 文件名_编辑框.内容
加入成员 (下载结构, 下载子结构)

.子程序 下载进度事件, , , 此子程序只是有于演示,请大家直接复制到自己的程序中去。
.参数 任务ID, 整数型, , 大于0的任务ID
.参数 文件总大小, 整数型, , 单位为:字节
.参数 已下载大小, 整数型, , 单位为:字节
.参数 下载速度, 小数型, , 单位为:KB/S
.参数 下载进度, 小数型, , 百分比,1-100之间
.参数 总下载速度, 小数型, , 单位为:KB。全部任务总共的下载速度
.局部变量 局_索引, 整数型

' 调试输出 (“............................”)
.如果真 (总下载速度 > 0)
标签_总下载速度.标题 = 到文本 (总下载速度) + “KB”
.如果真结束
.如果真 (下载速度 > 0)
局_索引 = 超级列表框.查找表项数值 (0, 任务ID)
超级列表框.置标题 (局_索引, 3, 到文本 (四舍五入 (已下载大小 ÷ 1024 ÷ 1024, 2)) + “MB/” + 到文本 (四舍五入 (文件总大小 ÷ 1024 ÷ 1024, 2)) + “MB”)
超级列表框.置标题 (局_索引, 2, 到文本 (下载进度) + “%”)
超级列表框.置标题 (局_索引, 4, 到文本 (下载速度) + “KB/S”)
修改任务信息记录 (“dat”, 下载结构 [根据任务id查找下载结构 (任务ID)].编号GUID, , 已下载大小)