赛迪网 > IT技术 编程语言 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

利用VB提取HTML文件中的EMAIL地址

发布时间:2006.08.16 02:42     来源:plwww    作者:

利用VB提取HTML文件中的EMAIL地址

    电子邮件(EMAIL)是INTERNET上应用最广泛的一种服务之一。我们每天都在使用电子邮件,有时为了宣传我们的产品、网站等,更是离不开电子邮件,这就需要收集很多的EMAIL地址。下面我们将向大家介绍用VB自编一个EMAIL地址提取器,用来提取保存在我们硬盘中的HTML文件中所包含的EMAIL地址。一 设计界面    进入VB,选择“标准EXE”新建一工程,选择“工程”菜单下的“引用”,选中Microsoft scripting Runtime”,然后再选择“工程”菜单中的“部件”,在弹出的对话框中选择“Microsoft common dialog control 6.0”,在工具箱中加入通用对话框控件。接下来在默认窗体FORM1上添加三个标签控件,一个文本框控件text1,一个列表框控件LIST1,并命名为lstemail,三个命令command1~command3,其Caption属性分别设置为“提取”、“整理”、“保存”,设置完成的界面如下图所示:

二 输入源程序Dim X, Y, St1, St2, tmpY As Integer'提取EMAIL地址子程序Private Sub StripEmail(FilePath As String)Dim tmpEmail1, tmpEmail2 As StringOpen FilePath For Input As #1Do Until EOF(1)On Error Resume NextInput #1, tmpEmail1For X = 1 To Len(tmpEmail1)tmpEmail2 = Mid(tmpEmail1, X, 7)'查找EMAIL标志If tmpEmail2 = "mailto:" ThenSt1 = XtmpY = X + 1For Y = 1 To Len(tmpEmail1)tmpEmail2 = Mid(tmpEmail1, tmpY, 1)If tmpEmail2 = Chr(34) Or tmpEmail2 = "?" ThenSt2 = tmpYtmpEmail2 = Mid(tmpEmail1, St1 + 7, ((St2 - St1) - 7))If (Left(tmpEmail2, 2) <> "//") And (Left(tmpEmail2, 1) <> " ") ThenlstEmail.AddItem tmpEmail2Exit ForEnd IfEnd IftmpY = tmpY + 1Next YEnd IfNext XLoopClose #1End SubPrivate Sub Command1_Click()Dim fs As New FileSystemObject ' 建立 FileSystemObjectDim fd As Folder ' 定义 Folder 对象Dim sfd As FolderSet fd = fs.GetFolder(Text1)Command1.Enabled = FalseScreen.MousePointer = vbHourglassFindFile fd, "*.htm" 'Text1.TextCommand1.Enabled = TrueScreen.MousePointer = vbDefaultEnd SubSub FindFile(fd As Folder, FileName As String)Dim sfd As Folder, f As File' Part I查找该文件夹的所有文件For Each f In fd.FilesIf UCase(f.Name) Like UCase(FileName) ThenLabel2 = f.PathStripEmail (f.Path)lblEmail = "已查找到的地址数为: " & lstEmail.ListCountEnd IfDoEventsNext' Part II循环查找所有子文件夹For Each sfd In fd.SubFoldersFindFile sfd, FileName ' 循环查找NextEnd Sub Private Sub Command2_Click()'去掉重复的EMAIL地址For i = 0 To lstEmail.ListCount - 1For X = 0 To lstEmail.ListCount - 1If i = X Then GoTo NextxIf LCase(lstEmail.List(X)) = LCase(lstEmail.List(i)) ThenOn Error Resume NextlstEmail.RemoveItem XEnd IfNextx:Next XNext ilblEmail = "共有" & lstEmail.ListCount & "个地址"End Sub'保存Private Sub Command3_Click()'设置文件名Dim strname As Stringcommondialog1.Filter = "文本文件(*.txt)*.txt"commondialog1.ShowSaveIf commondialog1.FileName <> "" Thenstrname = commondialog1.FileNameElsestrname = App.Path & "\emailaddress.txt"End If'保存文件Open strname For Output As #1On Error Resume NextFor i = 0 To lstEmail.ListCount - 1Print #1, lstEmail.List(i)NextClose #1End Sub本程序在WINDOWS ME、VB6.0中文企业版中运行通过。以上程序稍加修改即可实现提取其他类型文件中的EMAIL地址。


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 非Access数据库在VB的编程及应用 (08-15) · VB编程的一些心得 (12-18)
· 用VB开发应用程序如何使用INI文件 (02-09) · 贪食蛇 (10-10)
· 贪食蛇 (04-18) · 让VB应用程序支持鼠标滚轮 (11-26)
· 让VB应用程序支持鼠标滚轮 (03-01) · Matthew Curland的VB函数指针调用 (04-07)
· Matthew Curland的VB函数指针调用 (12-26) · VB之道! (04-28)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管