用VB将Html转换为文本文件
2008-04-09 04:40:52来源:互联网 阅读 ()
一个简单的Html转换Txt程序的基本原理就是--将超文本文件不可视部分去掉,将超文本文件可视部分的内容写到文本文件中去。
好了,有了理论就应该有些实际的东西了。转换的步骤可以简单地归纳为:
1、 去掉$#@60;head$#@62;部分的内容
2、 去掉$#@60;script$#@62;部分的Java脚本程序
3、 转换$#@60;br为换行符
4、 转换$#@60;/p$#@62;为换行符
5、 转换和去掉其它所有的超文本标记
6、 转换“$#@60;”为“<”符号
7、 转换“$#@62;”为“>”符号
8、 转换“&”为“&”符号
9、 转换“ ”为空格符号
10、转换“"”为引号
11、去掉转换后开头和结尾出现的所有空格符号
12、转换完成
转换的步骤可用VB的函数IsStr来实现,如下面的代码可以去掉文本框Text3中超文本文件开头到$#@60;/Head$#@62;标记部分的内容:
Do While InStr(1, LCase(Text3.Text), "$#@60;/head$#@62;") <> 0
Text3.SelStart = 0
Text3.SelLength = InStr(1, LCase(Text3.Text), "$#@60;/head$#@62;") 6
Text3.SelText = ""
Loop
详细的程序代码请参看程序清单或源程序。这个转换程序设计时考虑的是转换规范的超文本文件,当要转换的文件不够标准(如:有$#@60;/head$#@62;而没有$#@60;head$#@62;与之配对)的时候,转换就不能完成。而且,这个例子只转换了部分的超文本标记,还有许多的标记,如表单标记“FORM”并没有被转换,更多、更详尽的功能就有待你完成了。
156
Option Explicit
Private Sub Form_Load()
CommonDialog1.CancelError = TrueEnd Sub
Text3.Visible = False
Command1.Capti = "打开"
Command2.Caption = "转换==$#@62;"
Command3.Caption = "保存"
Private Sub Command1_Click()
On Error Resume NextEnd Sub
Dim TextLine As String
CommonDialog1.Filter = "网页|*.htm;*.html"
CommonDialog1.ShowOpen
If err $#@60;$#@62; 32755 Then
Text1 = ""Else
"打开文件
Open CommonDialog1.FileName For Input As #1
Do While Not EOF(1)
Line Input #1, TextLineLoop
Text1 = Text1 & Trim(TextLine)
Close #1
MsgBox "不能打开文件"End If
Private Sub Command3_Click()
On Error Resume NextEnd Sub
CommonDialog1.Filter = "文本文件|*.txt"
CommonDialog1.ShowSave
If err $#@60;$#@62; 32755 Then
Open CommonDialog1.FileName For Output As #1Else
Print #1, Text3
Close #1
MsgBox "不能保存文件"End If
Private Sub Command2_Click()
Dim txtStr As String
On Error GoTo err
Form1.MousePointer = 11
Text3.Text = Text1.Text
DoEvents
Form1.Caption = "正在去掉$#@60;head$#@62;部分..."
"去掉$#@60;head$#@62;部分
Do While InStr(1, LCase(Text3.Text), "$#@60;/head$#@62;") $#@60;$#@62; 0
Text3.SelStart = 0Loop
Text3.SelLength = InStr(1, LCase(Text3.Text), "$#@60;/head$#@62;") 6
Text3.SelText = ""
Form1.Caption = "正在去掉$#@60;script$#@62;部分..."
"去掉$#@60;script$#@62;部分
Do While InStr(1, LCase(Text3.Text), "$#@60;/script$#@62;") $#@60;$#@62; 0
Text3.SelStart = InStr(1, LCase(Text3.Text), "$#@60;script") - 1Loop
Text3.SelLength = InStr(1, LCase(Text3.Text), "$#@60;/script$#@62;") - Text3.SelStart 9
Text3.SelText = ""
Form1.Caption = "正在转换$#@60;br$#@62;为换行符..."
"转换$#@60;br$#@62;为换行符
Do While InStr(1, LCase(Text3.Text), "$#@60;br$#@62;") $#@60;$#@62; 0
Text3.SelStart = InStr(1, LCase(Text3.Text), "$#@60;br$#@62;") - 1Loop
Text3.SelLength = 4
Text3.SelText = "" vbCrLf
Form1.Caption = "正在转换$#@60;p$#@62;$#@60;/p$#@62;为换行符..."
"转换$#@60;/p$#@62;为换行符
Do While InStr(1, LCase(Text3.Text), "$#@60;/p$#@62;") $#@60;$#@62; 0
Text3.SelStart = InStr(1, LCase(Text3.Text), "$#@60;/p$#@62;") - 1Loop
Text3.SelLength = 4
Text3.SelText = "" vbCrLf
Form1.Caption = "正在删除Html标记..."
"去掉其它的Html标记
Do While InStr(1, LCase(Text3.Text), "$#@60;") $#@60;$#@62; 0
Text3.SelStart = InStr(1, LCase(Text3.Text), "$#@60;") - 1标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash