注册 登录
编程论坛 VB6论坛

VB如何读取天气预报

事业男儿 发布于 2013-08-13 17:34, 1133 次点击
想在主窗口上放一个 记事本    让窗体一启动就读取http://tianqi.上面的文字到记事里,不知道该怎么读取网页的关键文字,请哪位高手帮个忙写一个程序,谢谢!
8 回复
#2
lowxiong2013-08-13 18:38
新建一工程,左侧工具栏中空白处按鼠标右键选择“部件-Microsoft Internet Transfer Control6.0”,这时会在工具栏中显示一个Inet图标,把它拖到窗体中,双击窗体空白处,在Form_Load事件里输入下列代码,运行即可看到效果:

Private Sub Form_Load()
  Dim a As String, i As Integer, j As Integer
  a = Inet1.OpenURL("http://tianqi., icString)
  i = InStr(a, "description")
  j = InStr(a, "北京天气预报代码免费调用")
  MsgBox Mid(a, i + 22, j - i - 23)
End Sub
#3
事业男儿2013-08-14 15:40
回复 2楼 lowxiong
首先谢谢版主热情的回答,请问版主,我想将显示结果显示在Label1上  这个代码怎么写呢?能否解释一下这几行代码的原理,我真的很想搞懂!以后就可以举一反三!

[ 本帖最后由 事业男儿 于 2013-8-14 17:57 编辑 ]
#4
kinzhu2013-08-18 11:18
回复 3楼 事业男儿
我来提版主解释下
程序代码:

Private Sub Form_Load()

 '声明变量
  Dim a As String, i As Integer, j As Integer
' 读取这个网页地址内容,到底是什么内容呢,当你用浏览器访问这个页面 右击查看源代码 就是这个内容
  a = Inet1.OpenURL("http://tianqi.", icString)
'因为要获取自己想要的天气 内容 所以 要找两个 截取点
  i = InStr(a, "description")
  j = InStr(a, "北京天气预报代码免费调用")
'msgbox 弹出内容, 如果是你所说放在label里面   那么  label1.Caption = Mid(a, i + 22, j - i - 23) 即可。
  MsgBox Mid(a, i + 22, j - i - 23)
End Sub


另外请教下版主,如果我读取的网页是 utf-8 的 ,然后中文乱码  怎么解决啊??  VB中 使用的编码方式是系统语言吗? 能不能象制作网页一样可以设置 编码

谢谢。
#5
事业男儿2013-08-19 14:45
回复 4楼 kinzhu
谢谢楼上的解答。
#6
wosizhuojin2013-08-24 21:17
真心找个会vb的师傅,要免费的,嘻嘻 qq1915920790 欢迎大家做我师傅哦!
#7
tonoy2013-08-25 18:35
lable1.caption = Mid(a, i + 22, j - i - 23)

沙发答案正解
#8
tonoy2013-08-25 18:59
lable1.caption = Mid(a, i + 22, j - i - 23)

沙发答案正解
#9
事业男儿2014-04-17 18:30
Private Sub Timer1_Timer()
  Dim a As String, i As Integer, j As Integer
  a = Inet1.OpenURL("http://tianqi., icString)
  i = InStr(a, "description")
  j = InStr(a, "北京天气预报代码免费调用")
  lable1.caption = Mid(a, i + 22, j - i - 23)
End Sub
 在软件正常显示天气后,我人为短掉网络,可是怎么lable1.caption还是在显示有天气预报,我想让他在突然断网后显示为零  或者没有数据。谢谢!
1