|
楼主 |
发表于 2018-8-24 11:44:58
|
显示全部楼层
广西壮族自治区贵港市
本帖最后由 450556810 于 2018-8-24 12:55 编辑
我稍后会上传进度代码,希望官方能采纳
|
进度下载 | 逻辑型 | | |
网络文件 | 文本型 | | | | 本地文件 | 文本型 | | | | 下载回调 | 子程序指针 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | hOpen | 整数型 | | | hOpenUrl | 整数型 | | | bool | 逻辑型 | | | sReadBuffer | 字节型 | | 0 | lNumberOfBytesRead | 整数型 | | | lCount | 长整数型 | | | hHttpQueryInfo | 整数型 | | | sBuffer | 文本型 | | | FileSize | 整数型 | | | handle | 整数型 | | | StartTime | 整数型 | | | TotalReadSize | 整数型 | | | TimeConsuming | 整数型 | | | lSpeed | 整数型 | | | 进度 | 整数型 | | |
FileSize = 取文件大小 (网络文件 )如果真 (FileSize = 0 )返回 (假)hOpenUrl = FtpOpenFileA (连接句柄, 网络文件, -2147483648, 2, 0)如果真 (hOpenUrl = 0 )返回 (假)handle = 打开文件 (本地文件, 6, 1)StartTime = GetTickCount ()循环判断首 ()重定义数组 (sReadBuffer, 假, 2048 )bool = InternetReadFileA (hOpenUrl, sReadBuffer, 2048, lNumberOfBytesRead )如果 (lNumberOfBytesRead > 0 且 bool )重定义数组 (sReadBuffer, 真, lNumberOfBytesRead )lCount = lCount + lNumberOfBytesRead 写出数据 (handle, sReadBuffer )TotalReadSize = TotalReadSize + lNumberOfBytesRead TimeConsuming = GetTickCount () - StartTime 如果真 (TimeConsuming > 0 )lSpeed = TotalReadSize ÷ TimeConsuming 进度 = 取整 (lCount ÷ FileSize × 100) 如果真 (是否为空 (下载回调 ) = 假 或 到整数 (下载回调 ) ≠ 0 )程序_Call (到整数 (下载回调 ), 内存_指针_取长整数指针 (lCount ), lSpeed, 进度 )处理事件 ()跳出循环 ()处理事件 ()循环判断尾 (lNumberOfBytesRead ≠ 0 )关闭文件 (handle )InternetCloseHandle (hOpen )InternetCloseHandle (hOpenUrl )返回 (真)|
进度上传 | 逻辑型 | | |
本地文件 | 文本型 | | | | 远程文件 | 文本型 | | | | 上传回调 | 子程序指针 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | hFile | 整数型 | | | bool | 逻辑型 | | | Size | 长整数型 | | | 文件号 | | | | lBlock | 整数型 | | | Data | 字节型 | | 1024 | Written | 整数型 | | | lCount | 长整数型 | | | StartTime | 整数型 | | | TotalReadSize | 整数型 | | | TimeConsuming | 整数型 | | | lSpeed | 整数型 | | | 进度 | 整数型 | | |
hFile = FtpOpenFileA (连接句柄, 远程文件, 1073741824, 2, 0 )如果真 (hFile = 0 )返回 (假)文件号 = 打开文件 (本地文件, #读入, #无限制 )Size = 取字节集数据 (到字节集 (取文件长度 (文件号 )), #长整数型, )StartTime = GetTickCount ()变量循环首 (1, Size \ 1024, 1, lBlock )读入数据 (文件号, Data )bool = InternetWriteFile (hFile, Data, 1024, Written )如果 (bool 且 Written > 0 )重定义数组 (Data, 假, Written )lCount = lCount + Written TotalReadSize = TotalReadSize + Written TimeConsuming = GetTickCount () - StartTime 如果真 (TimeConsuming > 0 )lSpeed = TotalReadSize ÷ TimeConsuming 进度 = 取整 (lCount ÷ Size × 100) 如果真 (到整数 (上传回调 ) ≠ 0 )程序_Call (到整数 (上传回调 ), 内存_指针_取长整数指针 (lCount ), lSpeed, 进度 )跳出循环 ()处理事件 ()变量循环尾 ()关闭文件 (文件号 )InternetCloseHandle (hFile )返回 (真)变量名 | 类 型 | 静态 | 数组 | 备 注 | 文件号 | 整数型 | | | 文件信息 | 查找的文件信息 | | | 文件大小 | 长整数型 | | |
文件号 = FtpFindFirstFileA (连接句柄, FTP文件路径, 文件信息, 1, 0 )文件大小 = 文件信息.nFileSizeLow + 文件信息.nFileSizeHigh InternetCloseHandle (文件号 )返回 (文件大小 )
|
内存_指针_指针到长整数 | 长整数型 | | |
in_内存指针 | 整数型 | | | | 置入代码 ({ 139, 69, 8, 133, 192, 116, 5, 139, 80, 4, 139, 0, 201, 194, 4, 0 })返回 (0 )|
内存_指针_取长整数指针 | 整数型 | | |
in_长整数变量 | 长整数型 | | | | 置入代码 ({ 139, 69, 8, 201, 194, 4, 0 })返回 (0 )
文本_临时缓存区 = 取空白文本 (100 )StrFormatByteSizeA (文件大小, 文本_临时缓存区, 100 )判断 (文本_临时缓存区 = “0 字节”)文本_临时缓存区 = “0”判断 (寻找文本 (文本_临时缓存区, “字节”, , 假) ≠ 0 )文本_临时缓存区 = 子文本替换 (文本_临时缓存区, “字节”, “B”, , , 真)返回 (文本_临时缓存区)
附近:
FTP进度下载 .zip
(1.71 MB, 下载次数: 64)
|
|