📄 module1.vb
字号:
Imports System.Security.Cryptography
Imports System.Text
Public Module Module1
Structure MyThreadStru
Public filename As String
Public startPos As Long
Public endPos As Long
Public nowPos As Long
Public url As String
Public speed As Long
End Structure
'Structure MyDownTaskStru
Public Class MyDownTaskClass
Public md5 As String
Public status As Integer
Public savePathfilename As String
Public downUrl As String
Public refUrl As String
'Dim md5, status, filename, url, refurl, length, complete, tcount, thDataStr, note As String
Public Length As String
Public Complete As String
Public downThreadAmount As Integer
Public thData() As Byte
Public notetxt As String
Public time As Integer
End Class
' End Structure
Public Function BinToStr(ByVal inBytes() As Byte) As String
Dim sb As New System.Text.StringBuilder
Dim u As New System.Text.UnicodeEncoding
Dim cc() As Char = u.GetChars(inBytes)
For Each c As Char In cc
sb.Append(c.ToString)
Next
Return sb.ToString
End Function
Function getMd5Hash(ByVal input As String) As String
Dim md5Hasher As MD5 = md5.Create()
Dim data As Byte() = md5Hasher.ComputeHash(Encoding.Unicode.GetBytes(input))
Dim sb As New StringBuilder()
For i As Integer = 0 To data.Length - 1
sb.Append(data(i).ToString("x2"))
Next i
Return sb.ToString()
End Function
' Dim md5 As String = getMd5Hash(filename)
Function MapToDownloadTask123456(ByVal md5 As String) As MyDownloadTask
Using conn As New Data.OleDb.OleDbConnection(connStr)
Dim com As New Data.OleDb.OleDbCommand("", conn)
com.Parameters.AddWithValue("@md5", md5)
com.CommandText = "SELECT * FROM 下载数据 WHERE md5=@md5"
conn.Open()
Dim dr As OleDb.OleDbDataReader = com.ExecuteReader
Dim nt As MyThreadStru
If dr.HasRows = False Then Return Nothing
Dim tempss As String = String.Empty
While dr.Read()
nt.filename = dr.Item("Filename").ToString()
nt.url = dr.Item("URL").ToString
tempss = dr.Item("Thread").ToString & dr.Item("Thread2").ToString
End While
Dim mmm As RegularExpressions.MatchCollection = RegularExpressions.Regex.Matches(tempss, "#\d+:\d+:\d+")
For Each mm As System.Text.RegularExpressions.Match In mmm
Dim mc As RegularExpressions.MatchCollection = RegularExpressions.Regex.Matches(mm.ToString, "(?<s>\d+):(?<n>\d+):(?<e>\d+)")
For Each m As System.Text.RegularExpressions.Match In mc
nt.startPos = CLng(m.Groups("s").ToString)
nt.nowPos = CLng(m.Groups("n").ToString)
nt.endPos = CLng(m.Groups("e").ToString)
'Dim downFile As New MyDownThread(nt)
'AddHandler downFile.thDone, AddressOf Me.chedkdone
'AddHandler downFile.thStop, AddressOf Me.thStop
'Me.thColl.Add(downFile)
Next
Next
com.Dispose()
End Using
End Function
Sub BindThreadToDownTask(ByVal sender As MyDownloadTask, ByVal thdatastr As String, ByVal filename As String, ByVal url As String)
Dim mmm As RegularExpressions.MatchCollection = RegularExpressions.Regex.Matches(thdatastr, "#\d+:\d+:\d+")
For Each mm As System.Text.RegularExpressions.Match In mmm
Dim mc As RegularExpressions.MatchCollection = RegularExpressions.Regex.Matches(mm.ToString, "(?<s>\d+):(?<n>\d+):(?<e>\d+)")
For Each m As System.Text.RegularExpressions.Match In mc
Dim ts As New MyThreadStru
ts.filename = filename
ts.url = url
ts.startPos = CLng(m.Groups("s").ToString)
ts.nowPos = CLng(m.Groups("n").ToString) + 0 'no index to restore pos
ts.endPos = CLng(m.Groups("e").ToString)
Dim downFile As New MyDownThread(ts)
AddHandler downFile.thStop, AddressOf sender.thStop ' Me.thStop
sender.thColl.Add(downFile)
Next
Next
End Sub
End Module
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -