从文本文件自动生成超链接






2.50/5 (2投票s)
2004年10月4日
4分钟阅读

54155

527
Autolink 自动生成包含超链接列表的文本文件。您提供htm页面列表和页面名称列表作为输入。
引言
Autolink 自动生成超链接列表。您提供 htm 页面列表(文本文件)和页面名称列表(文本文件)作为输入,autolink 创建一个输出文件,其中包含您可以嵌入到源代码中的超链接列表。
详细信息
这是一个非常非常简单的实用程序。它用 ASP.NET 编写。它的主要功能是自动生成超链接(URL)列表。最近,我遇到了一个简单的项目,需要我为大约 2000 个文件生成 URL 列表。显然,手动完成这项任务很费时,可能会浪费我很多宝贵的时间。我确信我会在网上找到一个实用程序来完成这项简单的任务,但令我惊讶的是,没有这样的实用程序。在全面搜索互联网后,我找到了一个可以完成这项任务的小型应用程序,但您猜怎么着,它的价格是 395 美元。因此,除了编写我自己的简单实用程序之外,没有其他解决方案了。代码非常简单。我使用 streamReader 类来读取和写入文件。我使用了两个文件。一个文件包含页面列表,另一个文件包含文件名列表。例如,list1 包含
this_is_html_file1.htm
this_is_html_file2.htm
this_is_html_file3.htm
list2 包含
this is html file1
this is html file2
this is html file3
您一定认为创建这些文件本身就是一个乏味的工作。是的,您是对的!手动创建这些文件很困难,但每个问题都有解决方案,我们问题的解决方案是在 DOS 模式下使用 DIR 命令。例如,文件夹包含 2000 个文件。您将如何从该文件夹生成文件列表?简单!在 DOS 提示符下使用以下命令
Dir >
在包含文件的文件夹中执行此命令。它将生成所有文件的列表。使用记事本清理此列表。按 Ctrl + H 运行查找和替换命令。从列表中删除日期。您的文件应仅包含如上所示的 html 文件列表。现在,通过复制此文件并再次运行查找和替换命令来创建另一个文件。从每个文件中删除 .htm 扩展名。现在,您有两个文件。一个包含 html 文件列表,另一个包含这些 html 文件的名称列表。编辑代码并使用您自己的路径。找到 ::Dim fylename As String = "C:\temp\list.txt":: 在代码中,这是您的第一个文件,其中包含 html 页面列表。然后找到 ::Dim fylename2 As String = "C:\temp\list2.txt"::,这是您的第二个文件,其中包含列表名称。找到 ::oWriter = oFile.CreateText("C:\temp\finallist.txt")::,这是您的输出文件。对 file1 和 file2 的内容应用格式设置,并将结果写入 file3。稍后将 file3 的内容复制到您的 htm 页面中。就是这样!如果您想为 100 多个文件生成 URL 列表,此实用程序非常有用。我试用了这个实用程序并为 2000 个文件创建了 URL 列表。它为我节省了很多时间。我知道它应该包含一种自动获取页面列表的方法,这样我们就不必使用记事本清理列表了。也许如果我再做一个为 10000 个页面创建 URL 列表的项目,我也会添加该功能。您可以修改代码并自己添加该功能。使用正则表达式格式化文本文件。Regexlib.com 是一个非常有用的网站,其中包含数百个预构建的正则表达式。您可以从该站点下载所需的正则表达式。让我们简要介绍一下代码
oStreamReader = File.OpenText(fylename)
此行实例化 ostreamreader 对象,fylename 包含要读取的文件的名称。
oWriter = oFile.CreateText("C:\temp\finallist.txt")
此行实例化 owriter 对象,使用 file 对象的 createtext 方法创建一个文件。
Do Line = oStreamReader.ReadLine Line2 = ostreamreader2.ReadLine newLine = "<font face='Verdana,Helvetica' size='2'><a href='" & Line & _ "'>" & Line2 & "</a></font><br>" oWriter.WriteLine(newLine) Loop Until Line Is Nothing
在此循环中,您逐行读取两个文件的内容,应用格式设置,创建超链接并将结果写入第三个文件。使用 streamreader 类的 ReadLine 方法从文件中读取每一行。使用 streamwriter 类的 writeline 方法将每一行写入一个新文件。
'Destroy objects oStreamReader.Close() oStreamReader = Nothing ostreamreader2.Close() ostreamreader2 = Nothing oWriter.Close() oWriter = Nothing
最后,销毁所有对象。在您的代码中手动销毁所有对象是一个好习惯。
编程愉快!