Foxtable(狐表)用户栏目专家坐堂 → [求助] 网页值没有时怎么设置返回值


  共有2173人关注过本帖树形打印复制链接

主题:[求助] 网页值没有时怎么设置返回值

帅哥哟,离线,有人找我吗?
hrlong
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:80 积分:924 威望:0 精华:0 注册:2018/2/9 21:32:00
[求助] 网页值没有时怎么设置返回值  发帖心情 Post By:2018/8/31 10:10:00 [只看该作者]

老师好,我采用以下代码,采集股piao数据;但是有些股piao因为停牌,退市;会查找不到数据,这样的话
用这个代码采集数据会出现“索引超出了数组界限。”这样的错误;
请问怎么修改代码,让采集的数据为空时,自动返回0;
==========================================================
Dim obj_down As New System.Net.WebClient()
Dim drs As List(Of DataRow) = DataTables("表A").Select("股piao代码 is not null")
For Each dr As DataRow In drs
    Dim data As String = obj_down.DownloadString("http://hq.sinajs.cn/list=" & dr("股piao代码"))
    Dim start As Integer = data.IndexOf("""") + 1
    Dim en As Integer = data.IndexOf(""";")
    Dim datas() As String = data.SubString(start, en - start).Split(",")
    dr("股piao名字") = datas(0)
    dr("今日开盘") = datas(1)
    dr("昨日收盘") = datas(2)
    dr("当前价格") = datas(3)
Next
=============================================================

正常时:
var hq_str_sh603916="苏博特,14.900,14.900,14.910,15.050,14.730,14.900,14.910,1994900,29789704.000,13600,14.900,39800,14.890,13700,14.880,1400,14.870,2700,14.860,4100,14.910,2300,14.920,7100,14.930,2000,14.940,4400,14.950,2018-08-31,10:08:49,00";

异常时:
var hq_str_sh603297="";

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/31 10:20:00 [只看该作者]

能否执行到下面代码?

 

Dim datas() As String = data.SubString(start, en - start).Split(",")

msgbox(datas.length)


 回到顶部
帅哥哟,离线,有人找我吗?
hrlong
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:80 积分:924 威望:0 精华:0 注册:2018/2/9 21:32:00
  发帖心情 Post By:2018/8/31 11:39:00 [只看该作者]

msgbox(datas.length)

==============================
正常的时候显示的是33;如果不正常的时候显示1,显示1以后,马上就会出现“索引超出了数组界限。”这样的错误报警

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/31 11:47:00 [只看该作者]

Dim obj_down As New System.Net.WebClient()
Dim drs As List(Of DataRow) = DataTables("表A").Select("股piao代码 is not null")
For Each dr As DataRow In drs
    Dim data As String = obj_down.DownloadString("http://hq.sinajs.cn/list=" & dr("股piao代码"))
    Dim start As Integer = data.IndexOf("""") + 1
    Dim en As Integer = data.IndexOf(""";")
    Dim datas() As String = data.SubString(start, en - start).Split(",")
If datas.length > 10 then
    dr("股piao名字") = datas(0)
    dr("今日开盘") = datas(1)
    dr("昨日收盘") = datas(2)
    dr("当前价格") = datas(3)
Else
    dr("股piao名字") = "没找到"
End If
Next

 回到顶部