我使用 winsock 做了个下载模块.
现在问题是收到数据后如何保存问题.
如 : 我下载是个wmv格式文件.好象开头有个头文件(因为我下载txt文件时多了部分信息)
我现在该如何去掉那部分头信息...
现在问题是收到数据后如何保存问题.
如 : 我下载是个wmv格式文件.好象开头有个头文件(因为我下载txt文件时多了部分信息)
我现在该如何去掉那部分头信息...
解决方案 »
- vb 连接MYsql多表查询 出错 多步操作产生错误。请检查每一步的状态值
- DCOM服务器端怎么呼叫客户端
- listbox怎么让他多选?
- 请大师、小网虫还有对CSDN比较了解的朋友,一起来坐坐,希望能帮助我一起把CSDNExplorer(CSDN离线浏览器)做好!!
- asp 编成dll(ExecuteGlobal不支持)
- 有一个问题,大家看一下
- ADO方式查询sybase数据库出错
- vb开发CAD:CAD图上的点成一条线状,如何按顺序从一头读到另一头点的坐标?
- 在线盼答 vb 与 SQL Server 连接出错的问题
- 怎么点选MSFlexGried不同的行后出现不同的详细记录窗口?详细见内容。
- 技术支持给的HTTest.dll,程序运行提示找不到,文件夹下存在HTTest.dll(100分,不够再加)
- 求如何产生0-3间的随机数
DoEvents
Dim ByteData As String
Winsck.GetData ByteData, vbByte '接收的数据放入数组
ReceiveData = StrConv(ByteData, vbUnicode) '数据编码转换
Label2.Caption = ReceiveData
'计算文件长度,设置进度条
If InStr(1, ReceiveData, "Content-Length:") > 0 And FileSize = 0 Then '仅第一次计算,FileSize=0
Dim pos1 As Long, pos2 As Long
pos1 = InStr(1, ReceiveData, "Content-Length:")
pos2 = InStr(pos1 + 16, ReceiveData, vbCrLf)
If pos2 > pos1 Then
FileSizeByte = Mid(ReceiveData, pos1 + 16, pos2 - pos1 - 16) '计算文件的长度
StartTime = Timer() '保存开始下载的时间
ProgssBar.Max = FileSizeByte '设置进度条
FileSize = FormatNumber(FileSizeByte / 1024, 2) '以KB表示
Label1.Caption = "本次下载的文件共" + CStr(FileSize) + "KB..."
End If
End If
labDownloadSpeed.Caption = CStr(dblDownloadSpeed) + " kb/s"
labDownloadSpeed.Refresh
ProgssBar.Value = FileSizeHaveDown
'写数据
Fnum = FreeFile()
Open SaveFileName For Binary Lock Write As #Fnum
If LOF(Fnum) > 0 Then
Seek #Fnum, LOF(Fnum) + 1
End If
If StartPos > 0 Then
For i = StartPos To Len(ByteData)
Put #Fnum, , ByteData
Next i
Else
Put #Fnum, , ByteData
End If
Close #Fnum
ByteData = ""
'If Err Then
' lblProcessResult.Caption = lblProcessResult.Caption & vbCrLf & "获取数据出错:" & Err.Description
' lblProcessResult.Refresh
'End If
End Sub