JBTALKS.CC

标题: 疑问!Demisson Of Array 为什么每次弄都有问题?! [打印本页]

作者: goodhermit95    时间: 2008-12-12 12:26 PM
标题: 疑问!Demisson Of Array 为什么每次弄都有问题?!
我在做3个Project,都是有问题的……
第一个 - GIGALEON网路商店回帖查询器
  1. If Exists("html") Then Kill("html")
  2.         My.Computer.Network.DownloadFile("http://www.jbtalks.cc/forum-682-1.html", "html")
  3.         Dim SR As New StreamReader("html")
  4.         Dim line As String() = SR.ReadToEnd.Split(vbCrLf)
  5.         For i As Integer = line(i).ToString.Contains("<tr class=""category""><td> </td><td colspan=""6"">论坛主题</td></tr>") _
  6.         To line(i).ToString.Contains("正在浏览此论坛的会员")
  7.             If firstopen = 0 Then
  8.                 firstopen = 1
  9.                 MsgBox("First Open Detected")
  10.             ElseIf data <> line(i) Then
  11.                 Messanger.Show()
  12.                 MsgBox("data detected")
  13.             ElseIf data = line(i) Then
  14.                 MsgBox("data are same")
  15.             End If
  16.             data = line(i)
  17.             MsgBox(line(i))
  18.         Next
  19.         SR.Dispose()
复制代码
第二个 - VISTA RATING EDITOR
  1. Dim filename As String
  2.         Dim filelist As String() = System.IO.Directory.GetFiles(path)
  3.         For i As Integer = 0 To filelist.Count - 1
  4.             If i = filelist.Count - 1 Then
  5.                 filename = filelist(i).ToString
  6.             End If
  7.         Next
  8.         'On Error GoTo nochecked
  9.         Dim SR As New System.IO.StreamReader(filename)
  10.         Dim data As String = SR.ReadToEnd
  11.         Dim line As String() = data.Split(vbCrLf)
  12.         For i As Integer = 0 To line.Count - 1
  13.             If line(i).ToString.Contains("<SystemScore>") Then
  14.                 Dim textview As String = line(i).ToString
  15.                 textview.Replace("                <SystemScore>", "")
  16.                 textview.Replace("</SystemScore>", "")
  17.                 MsgBox(textview)
  18.                 TextBox6.Text = textview.ToString
  19.             End If
  20.         Next
  21.         Exit Sub
  22. nochecked:
  23.         MsgBox("Error,Please Run Windows Experience Index Once To Edit Score", MsgBoxStyle.Critical)
复制代码
第三个 - Youtube Video Downloader Download Link Genarator
  1. Public Sub GetDownloadLink()
  2.         Dim searchkeyword As String = "var fullscreenUrl = '/watch_fullscreen?fs=1&vq=None&"
  3.         If AddNewDownload.TextBox1.Text.StartsWith("http://") Then
  4.             videourl = AddNewDownload.TextBox1.Text
  5.         Else
  6.             videourl = ("http://www.youtube.com/watch?v=" & AddNewDownload.TextBox1.Text)
  7.         End If
  8.         Dim url As String = videourl
  9.         Dim Request As HttpWebRequest = WebRequest.Create(url)
  10.         On Error GoTo timeout
  11.         Dim Response As HttpWebResponse = Request.GetResponse
  12.         Dim SR As StreamReader
  13.         SR = New StreamReader(Response.GetResponseStream)
  14.         Dim sourcedata As String = SR.ReadToEnd
  15.         Dim line As String() = sourcedata.Split(vbCrLf)
  16.         For i As Integer = 0 To line.Count - 1
  17.             If line(i).ToString.Contains(searchkeyword) Then
  18.                 sourcedata = line(i)
  19.                 sourcedata.Replace(searchkeyword, "")
  20.                 sourcedata = "http://www.youtube.com/get_video.php?video_id=" & sourcedata
  21.                 TextBox1.Text = sourcedata

  22.             End If
  23.         Next
  24.         Exit Sub
  25. timeout:
  26.         MsgBox("网路错误,请稍后再重试", MsgBoxStyle.Critical)
  27.     End Sub
复制代码
这三个都跑不动,我想其中一定有什么问题……可是我看来看去都看不出,气死了
作者: Super-Tomato    时间: 2008-12-12 12:44 PM
使用 IDE 所提供給你的 break point 功能然後 step over 跟進你的程式碼找出在哪出現問題
作者: goodhermit95    时间: 2008-12-12 02:37 PM
标题: 回复 #2 Super-Tomato 的帖子
我知道,问题是在REplace不到,然后那个GIGA的是一直DATA <> line(i)
作者: Super-Tomato    时间: 2008-12-12 04:33 PM
看不懂你的意思, 也沒 vb 幫你測,


Dim line As String() = SR.ReadToEnd.Split(vbCrLf) ' 這裡先確定你是否已經成功取得網頁內容了



For i As Integer = line(i).ToString.Contains("<tr class=""category""><td> </td><td colspan=""6"">论坛主题</td></tr>")  To line(i).ToString.Contains("正在浏览此论坛的会员")
'這裡所包含的兩個問題:

1. 文字字串 " 必須是 \" , 而不是 ""
2. 確認你所輸入的 '中文' 文字是否和你所取得網頁內容的編碼符合, 不符合的話 For 就沒辦法被執行
作者: goodhermit95    时间: 2008-12-12 07:56 PM
标题: 回复 #4 Super-Tomato 的帖子
可是我测试过 "" 可以列,哪么其他又是什么问题?
问题在于 For i as integer 过后 line(i) 拿不到东西,还是一样整个长长的
两外我用Replace 根本没有 Replace
作者: Super-Tomato    时间: 2008-12-12 08:42 PM
原帖由 goodhermit95 于 2008-12-12 07:56 PM 发表
可是我测试过 "" 可以列,哪么其他又是什么问题?
问题在于 For i as integer 过后 line(i) 拿不到东西,还是一样整个长长的
两外我用Replace 根本没有 Replace



這就代表你的 Contains 就找不到匹配字串
作者: goodday    时间: 2008-12-12 09:15 PM
你的 variable 没有 做好 boxing 和 unboxing 咯
你一定要搬进去新的 variable 咯

这2.0 的年代没问题 到了 3.0 就一直这样咯

因为是 varian 的关系
作者: goodhermit95    时间: 2008-12-12 09:52 PM
标题: 回复 #7 goodday 的帖子
听不太明白?
Tomato,不可能啊,我一模一样放下去,以前用这个Code可以的,过后不知道放了什么东西就不能了
作者: Super-Tomato    时间: 2008-12-12 10:13 PM
原帖由 goodhermit95 于 2008-12-12 09:52 PM 发表
听不太明白?
Tomato,不可能啊,我一模一样放下去,以前用这个Code可以的,过后不知道放了什么东西就不能了


那麼就是如 GOODDAY 說的變數定義囉
作者: voyager    时间: 2008-12-17 01:38 PM
String.replace是return string的,不是pass by ref.....

eg:
strText = strText.replace("aa", "bb")

[ 本帖最后由 voyager 于 2008-12-17 01:40 PM 编辑 ]
作者: goodhermit95    时间: 2008-12-17 02:45 PM
标题: 回复 #10 voyager 的帖子
明白了
谢谢!




欢迎光临 JBTALKS.CC (https://www.jbtalks.cc/) Powered by Discuz! X2.5