|
25精币
本帖最后由 趁趁 于 2011-10-4 22:54 编辑
[e]
.版本 2
.支持库 EThread
.程序集 窗口程序集1
.子程序 __启动窗口_创建完毕
.子程序 _按钮1_被单击
通用对话框1.打开 ()
编辑框1.内容 = 通用对话框1.文件名
.子程序 分割
.局部变量 总大小, 大文件长度
.局部变量 块大小, 长整数型
.局部变量 块数量, 整数型
.局部变量 系统信息, 低层平台信息系统信息
.局部变量 内存映像文件地址, 长整数型
.局部变量 映像文件句柄, 整数型
.局部变量 起始位置, 长整数型
.局部变量 n, 整数型
.局部变量 文件号, 整数型
.局部变量 数据, 字节集
' b——比特
' B——字节
' KB——千字节
' MB——兆字节
' GB——吉字节
' 1B=8b
' 1KB=1024B
' 1MB=1024KB
' 1GB=1024MB
' -----------下面所有的单位转换成B,这样比较辨别---------------
离不开电脑_取大文件长度 (编辑框1.内容, 总大小) ' B
.判断开始 (组合框1.现行选中项 = 0) ' KB
块大小 = 到长整数 (编辑框2.内容) × 1024
.判断 (组合框1.现行选中项 = 1) ' MB
块大小 = 到长整数 (编辑框2.内容) × 1024 × 1024
.默认
块大小 = 到长整数 (编辑框2.内容) × 1024 × 1024 × 1024 ' GB
.判断结束
离不开电脑_取低层平台信息 (系统信息)
输出调试文本 (系统信息.dwAllocationGranularity)
块数量 = 总大小.dwMaximumSizeLow ÷ 块大小 + 1
编辑框3.内容 = 到文本 (块数量)
.如果真 (信息框 (“是否开始分割”, 4, “是否开始分割”) = 6)
按钮2.禁止 = 假
按钮2.标题 = “开始分割”
返回 ()
.如果真结束
进度条1.位置 = 0
映像文件句柄 = 离不开电脑_创建映射文件 (编辑框1.内容, 假, 0, 0, “”)
.如果 (块大小 > 系统信息.dwAllocationGranularity)
块大小 = 块大小 ÷ 系统信息.dwAllocationGranularity ' 转化成内存颗粒的倍数
块大小 = 块大小 × 系统信息.dwAllocationGranularity
起始位置 = 块大小
.否则
起始位置 = 系统信息.dwAllocationGranularity
.如果结束
' ------------
.计次循环首 (块数量, n)
进度条1.位置 = n ÷ 块数量 × 100
文件号 = 打开文件 (编辑框1.内容 + “.” + 到文本 (n), 4, 4)
.如果 (n = 块数量)
内存映像文件地址 = 离不开电脑_映射到内存 (映像文件句柄, 起始位置 × (n - 1), 0)
离不开电脑_读数据 (内存映像文件地址, 0, 总大小.dwMaximumSizeLow - 起始位置 × (n - 1), 数据)
.否则
内存映像文件地址 = 离不开电脑_映射到内存 (映像文件句柄, 起始位置 × (n - 1), 块大小)
离不开电脑_读数据 (内存映像文件地址, 0, 块大小, 数据)
.如果结束
写出字节集 (文件号, 数据)
离不开电脑_解除映射 (内存映像文件地址)
关闭文件 (文件号)
.计次循环尾 ()
' ------------
离不开电脑_关闭映射文件 (映像文件句柄)
按钮2.禁止 = 假
按钮2.标题 = “开始分割”
信息框 (“操作完毕”, #信息图标, “完毕”)
.子程序 _按钮3_被单击
.局部变量 文件号, 整数型
.局部变量 数据, 字节集
.局部变量 长度, 整数型
.局部变量 文件名, 文本型
.局部变量 n, 整数型
文件名 = 取文本左边 (编辑框1.内容, 倒找文本 (编辑框1.内容, “.”, , 假) - 1)
通用对话框2.文件名 = 文件名
通用对话框2.打开 ()
.如果真 (通用对话框2.文件名 = “”)
返回 ()
.如果真结束
文件号 = 打开文件 (通用对话框2.文件名, 4, 4)
n = 1
.判断循环首 (文件是否存在 (文件名 + “.” + 到文本 (n)))
数据 = 读入文件 (文件名 + “.” + 到文本 (n))
长度 = 长度 + 取字节集长度 (数据)
写出字节集 (文件号, 数据)
删除文件 (文件名 + “.” + 到文本 (n))
移动读写位置 (文件号, 1, 长度)
n = n + 1
.判断循环尾 ()
关闭文件 (文件号)
信息框 (“操作完毕”, #信息图标, “完毕”)
.子程序 _按钮2_被单击
按钮2.禁止 = 真
按钮2.标题 = “分割中..”
启动线程 (&分割, )
[/e]
这源码我找了好久才找到,可是编译不了,郁闷,另外里面用到了模块,谁帮忙解析一下这源码和不要用里面的模块啊,初学易语言,不想用模块。。。。 看了很久也看不明白啊,咕~~(╯﹏╰)b
超大文件分割器.rar
(6.8 KB, 下载次数: 6)
|
|