用VB.NET写的一个简易的RSS阅读器
源代码如下:
Imports System.Threading
Public Class Form1Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows 窗体设计器生成的代码 "
Public Sub New()Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
End Sub
'窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose()Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents ListBox1 As System.Windows.Forms.ListBox
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents AxWebBrowser1 As AxSHDocVw.AxWebBrowser
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents StatusBar1 As System.Windows.Forms.StatusBar
Friend WithEvents Label4 As System.Windows.Forms.Label
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()Sub InitializeComponent()
Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(Form1))
Me.ListBox1 = New System.Windows.Forms.ListBox
Me.Button1 = New System.Windows.Forms.Button
Me.AxWebBrowser1 = New AxSHDocVw.AxWebBrowser
Me.Label1 = New System.Windows.Forms.Label
Me.Label2 = New System.Windows.Forms.Label
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.StatusBar1 = New System.Windows.Forms.StatusBar
Me.Label4 = New System.Windows.Forms.Label
CType(Me.AxWebBrowser1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'ListBox1
'
Me.ListBox1.Location = New System.Drawing.Point(0, 67)
Me.ListBox1.Name = "ListBox1"
Me.ListBox1.Size = New System.Drawing.Size(727, 108)
Me.ListBox1.TabIndex = 0
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(629, 5)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(94, 56)
Me.Button1.TabIndex = 1
Me.Button1.Text = "读取"
'
'AxWebBrowser1
'
Me.AxWebBrowser1.Enabled = True
Me.AxWebBrowser1.Location = New System.Drawing.Point(-7, 184)
Me.AxWebBrowser1.OcxState = CType(resources.GetObject("AxWebBrowser1.OcxState"), System.Windows.Forms.AxHost.State)
Me.AxWebBrowser1.Size = New System.Drawing.Size(727, 480)
Me.AxWebBrowser1.TabIndex = 2
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(0, 26)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(624, 15)
Me.Label1.TabIndex = 3
Me.Label1.Text = "网站地址:"
'
'Label2
'
Me.Label2.Location = New System.Drawing.Point(0, 45)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(624, 14)
Me.Label2.TabIndex = 4
Me.Label2.Text = "网站描述:"
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(72, 0)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(552, 20)
Me.TextBox1.TabIndex = 6
Me.TextBox1.Text = "Http://Blog.CSDN.Net/AppleBBS/Rss.aspx"
'
'StatusBar1
'
Me.StatusBar1.Location = New System.Drawing.Point(0, 495)
Me.StatusBar1.Name = "StatusBar1"
Me.StatusBar1.Size = New System.Drawing.Size(726, 22)
Me.StatusBar1.TabIndex = 7
Me.StatusBar1.Text = "StatusBar1"
'
'Label4
'
Me.Label4.Location = New System.Drawing.Point(0, 6)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(72, 12)
Me.Label4.TabIndex = 8
Me.Label4.Text = "RSS地址:"
Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(726, 517)
Me.Controls.Add(Me.Label4)
Me.Controls.Add(Me.StatusBar1)
Me.Controls.Add(Me.TextBox1)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.AxWebBrowser1)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.ListBox1)
Me.Name = "Form1"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Easy RSS Reader"
CType(Me.AxWebBrowser1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
#End Region
Private thread As Thread '定义一个线程
Private Sub loadrss()Sub loadrss() '读取RSS文件并取出内容标题的过程
StatusBar1.Text = "正在读取" & TextBox1.Text & "并效验"
Me.loadxmltocache(TextBox1.Text)
StatusBar1.Text = "正在读取相关网站信息"
Me.loadtitle()
StatusBar1.Text = "正在读取相RSS内容项"
Me.loaditem()
StatusBar1.Text = "完成"
End Sub
Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
thread = New Thread(AddressOf loadrss)
thread.Start()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Private Sub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AxWebBrowser1.Width = Me.Width
StatusBar1.Text = "就绪"
End Sub
Private Sub loadxmltocache()Sub loadxmltocache(ByVal URL As String)
'读取RSS文件并存放在本地以供操作
Dim xmldocument As New XmlDocument
xmldocument.Load(URL)
xmldocument.Save(Application.StartupPath & "~doc.xml")
End Sub
Private Sub loadtitle()Sub loadtitle()
'从本地文件中进行操作,读取RSS中有关网站的信息
Dim xmlDocument As New XmlDocument
xmlDocument.Load(Application.StartupPath & "~doc.xml")
Dim mynodelist As XmlNodeList
mynodelist = xmlDocument.SelectNodes("/rss/channel")
Label1.Text = "网站:" & Trim(mynodelist(0).Item("title").InnerText())
Label2.Text = "描述:" & Trim(mynodelist(0).Item("description").InnerText())
End Sub
Private Sub loaditem()Sub loaditem()
'从本地文件中进行操作,读取RSS中内容的标题及作者
Dim xmlDocument As New XmlDocument
xmlDocument.Load(Application.StartupPath & "~doc.xml")
Dim mynodelist As XmlNodeList
mynodelist = xmlDocument.SelectNodes("/rss/channel/item")
ListBox1.Items.Clear()
Dim i As Integer
For i = 0 To mynodelist.Count - 1
ListBox1.Items.Add("[" & Trim(mynodelist(i).Item("dc:creator").InnerText()) & "]" & Trim(mynodelist(i).Item("title").InnerText()))
Next
End Sub
Private Sub ListBox1_SelectedIndexChanged()Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
thread = New Thread(AddressOf loadhtml)
thread.Start()
End Sub
Private Sub loadhtml()Sub loadhtml()
'读取RSS中对应文件的内容并存到临时文件后显示
Dim xmlDocument As New XmlDocument
xmlDocument.Load(Application.StartupPath & "~doc.xml")
Dim mynodelist As XmlNodeList
mynodelist = xmlDocument.SelectNodes("/rss/channel/item")
Dim i As Integer
Dim j As Boolean
Dim content As String
StatusBar1.Text = "正在读取文章内容"
For i = 0 To mynodelist.Count - 1
If ListBox1.SelectedItem = "[" & Trim(mynodelist(i).Item("dc:creator").InnerText()) & "]" & Trim(mynodelist(i).Item("title").InnerText()) Then
content = content & "<html><head><meta http-equiv='content-type' content='text/html;charset=UTF-8'></head><body leftmargin='5' topmargin='0' rightmargin='0'>"
content = content & "<table width='100%' height='80' bgcolor='#eeeeee'><tr><td><b>标题:</b><a href='"
content = content & Trim(mynodelist(i).Item("link").InnerText())
content = content & "'>"
content = content & Trim(mynodelist(i).Item("title").InnerText())
content = content & "</a><br><b>作者:</b>"
content = content & Trim(mynodelist(i).Item("dc:creator").InnerText())
content = content & "<br><b>日期:</b>"
content = content & Trim(mynodelist(i).Item("pubDate").InnerText())
content = content & "</td></tr></table><table><tr><td><b>摘要:</b>"
content = content & formatHtml(mynodelist(i).Item("description").InnerText())
content = content & "</td></tr></table></body></html>"
j = SaveTextFile(Application.StartupPath & "~temp.html", content)
AxWebBrowser1.Navigate(Application.StartupPath & "~temp.html")
Exit For
End If
Next
StatusBar1.Text = "完成"
End Sub
'写文件的过程
Function SaveTextFile()Function SaveTextFile(ByVal FilePath As String, ByVal FileContent As String) As Boolean
Dim sw As System.IO.StreamWriter
Try
sw = New System.IO.StreamWriter(FilePath, False)
sw.Write(FileContent)
Return True
Catch e As Exception
Return False
Finally
If Not sw Is Nothing Then sw.Close()
End Try
End Function
'从地址里取网址的函数
Private Function formatURL()Function formatURL(ByVal str As String) As String
Dim sStr As String
Dim i As Integer
Dim j As Integer
For i = 1 To Len(str)
sStr = sStr & Mid(str, i, 1)
If Mid(str, i, 1) = "/" Then
j += 1
End If
If j = 3 Then Exit For
Next
Return sStr
End Function
'将内容里的相对图片地址改成绝对地址的函数
Private Function formatHtml()Function formatHtml(ByVal str As String) As String
Return Replace(str, "src=" & Chr(34) & "/", "src =" & Chr(34) & formatURL(TextBox1.Text))
End Function
Private Sub TextBox1_Enter()Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
Try
thread = New Thread(AddressOf loadrss)
thread.Start()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class
转自: http://www.cnblogs.com/aowind/archive/2005/03/16/119838.html
转载于:https://www.cnblogs.com/Dicky/archive/2005/03/17/122365.html
用VB.NET写的一个简易的RSS阅读器相关推荐
- 用vb.net写一个简易的RSS阅读器
先发一个做出来的效果图 哈哈!怎么样?对了DUDU,我这个还解决了看天下那个阅读器不能正常显示相对路径的图片的问题哟! 现在不管相对的还是绝对的路径的图片都能正常显示哈! 下面是源代码,没有太多注释, ...
- vb.net写一个简易的RSS阅读器
十分简易哈!解决了相对图片路径不能正常显示! 可用于博客园 全文点击 http://www.cnblogs.com/aowind/archive/2005/03/16/119838.html
- WCF+Silverlight一个简单的RSS阅读器(二)
嘿嘿,坚持不懈,继续我的Silverlight之旅,创建了WCF服务,我们需要的是通过Silverlight能够应用这个服务, 比起2005,2008的服务引用做的好多了,上图: 通过右边的Disco ...
- HTML+CSS+原生JS写一个简易的音乐播放器(仅播放一首歌)
用HTML+CSS+原生JS写一个简易的音乐播放器(仅播放一首歌) 效果如下:(鼠标点击按钮可以实现播放或暂停,按钮会旋转,实现了歌词同步,功能还需改进) 代码如下: <!DOCTYPE htm ...
- python写音乐播放器_AJ Kipper:用Python写一个简易的MP3播放器
用Python写一个简易的MP3播放器 前言 最近在学习Web.py框架的时候,了解了基本的Python连接数据库(MySQL)的方法.学完后,总想用它来干点啥,于是,就想能不能写一个MP3播放器.一 ...
- C++小游戏扫雷——如何写出一个简易的扫雷
C++小游戏扫雷--如何写出一个简易的扫雷 其实很简单,但是这段代码不知道是否有BUG,有的话可以提出,谢谢大家. all.h函数库 #include "all.h" using ...
- 用python写了一个简易的记账软件,后期有可能更新
用python写了一个简易的记账软件,后期有可能更新 记账程序由来 程序介绍 模块 数据写入 gui图形化界面 关于输入空值 新建工作簿 完整代码 记账程序由来 曾经在iOS14的快截指令中写了一个快 ...
- Python:通过网络爬虫实现一个简易控制台音乐播放器
hello,大家好,我是wangzirui32,今天我们来学习如何通过网络爬虫实现一个简易控制台音乐播放器,开始学习吧! 1. 项目结构及库准备 app.py为项目入口程序,download.py为音 ...
- 通过rss阅读器写blog
现在的rss阅读器主要是用来阅读rss的内容,比如我用的新浪点点通,现在已经习惯了通过rss来阅读,可是不能够通过rss来写blog,要不就是通过rss自带的web浏览器,相当于还是用web在线的方式 ...
最新文章
- 给每个函数写一个记录日志的功能.
- python哪本好-最好的Python入门教材是哪本?
- ecshop 整合 QQ登陆 和 支付宝快捷登陆代码
- oracle会话资源,oracle session 会话
- mysql重新构建自增长_mysql 建表后 重新构建 自增字段 (保留 原有字段结构)
- SAP License:SAP概念辨识
- 一个点击icon就生成html和css的网页
- 计算机专业中专自我鉴定范文,计算机专业中专生自我鉴定范文
- windows 2003与windows 2008区别之AD DS篇
- java.util.BitSet 研究
- 智慧小区智能安防设计方案
- 【Android工具】更新wifi分析仪,wifi信道信息查看工具,wifi分析仪3.10.6L
- PB程序中在普通激光打印机上实现条码打印
- 南通大学计算机专业校区,南通大学计算机科学与技术专业
- 树莓派有线网络设置_树莓派的基本网络配置
- 把平板、手机作为电脑第二屏幕(Linux系统下)
- php干啥,php是什么意思?php能干啥?
- 7-17 爬动的蠕虫
- 笨方法学python 习题29-31
- Microsoft Academic Search 微软学术搜索体验