2017年都有谁开演唱会:请解释一下这些代码的含义、用途和实现过程

来源:百度文库 编辑:高校问答 时间:2024/05/09 06:21:44
Dim musicname(1, 0) As String
Dim booltype As Boolean
Dim boolshowtext As Boolean
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim myWebClient As New WebClient()
Dim sQuery As String

Dim musicnumber As Integer
ReDim musicname(1, 0)
Dim i As Integer
Dim t As String
Dim tempstring As String
t = TextBox1.Text
Dim squerystringbaidu As String = ""
Dim s() As Char
s = t.ToCharArray
For i = 0 To s.GetUpperBound(0)
If Asc(s(i)) < 0 Then
tempstring = Hex(65536 + Asc(s(i)))
tempstring = tempstring.Insert(0, "%")
tempstring = tempstring.Insert(3, "%")
squerystringbaidu += tempstring
Else
squerystringbaidu += s(i)
End If

Next

sQuery = "http://mp3.baidu.com/m?word=" + squerystringbaidu + "&rn=&f=ms&tn=baidump3&lm=0&ct=134217728&submit=" + HttpUtility.UrlEncode("百度搜索")
Dim strm As Stream = myWebClient.OpenRead(sQuery)
Application.DoEvents()
Dim sr As New StreamReader(strm, System.Text.Encoding.Default)
Dim sLine As String
Do
sLine = sr.ReadLine
If sLine.Length > 40 Then
If Regex.IsMatch(sLine, "<a\shref=[""]http://\S{1,200}\.mp3[""]\starget=_blank>") = True Then
musicnumber += 1
ReDim Preserve musicname(1, musicnumber) '地址分析
musicname(1, musicnumber) = Regex.Match(sLine, "http://\S{1,200}\.mp3").Value
musicname(0, musicnumber) = HttpUtility.HtmlDecode(Regex.Replace(sLine, "<.+?>", ""))
End If
End If

Loop Until sr.EndOfStream
If musicnumber = 0 Then MessageBox.Show("在Internet上搜不到一首歌") : Exit Sub
booltype = True
ListBox1.Items.Clear()
For i = 1 To musicnumber
ListBox1.Items.Add(musicname(0, i))
Next i

strm.Close()

End Sub

Private Sub ListBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseClick
If booltype = True Then
AxWindowsMediaPlayer1.URL = musicname(1, ListBox1.SelectedIndex + 1)
Else
TextBoxgeci.Text = musicname(1, ListBox1.SelectedIndex + 1)
End If
End Sub

Private Sub ListBox1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDoubleClick

End Sub