如何用ASP读写TXT文本文件中的内容

虽然使用ASP有几年的时间了,但对ASP网络编程的了解和掌握还停留在初中阶段,一些不太常用的操作没有接触过,自然也没有学会。就拿ASP处理数据而言,用ASP连接数据库是网站开发的必备,这个当然是已经掌握的了。但使用ASP操作文件,恐怕使用频率就没那么高了。今年早些时候,学会了利用ASP的XMLHTTP和FSO组件进行网页内容获取和静态网页的生成,以及一般文件的移动、复制和删除等操作。

但对于如何读取纯文本文件(txt)中的内容,却一直没有很好地掌握。应该说,很多时候,txt文件使我们存放少量信息,存放一些使用频率较高信息的常用方法,毕竟比起数据库操作,要简单、方便、快捷。今天就用到了从txt文件中逐行读取邮件地址这样的问题,通过请教百度师父,得到了相应的方法,特地贴出来存档,以备今后查看。

	set fs=Server.CreateObject("Scripting.FileSystemObject")
	txtfile=Server.MapPath("a.txt")
	set a=fs.OpenTextFile(txtfile)
	while not a.AtEndOfStream
		response.write(a.Readline&"<br />")
	wend
	a.close

上述代码的结果就是讲a.txt文件中的数据逐行显示到网页中。当然,如果你逐行读取数据的目的是有其他用途,而非单纯地显示到网页前台,那么在response.write这里执行相应的功能即可。在本例中,代码中提到的的a.txt文件,应该与该程序文件处于同一目录下。

此外,还有两外一种代码写法,和上例代码有所差异,但功能是一样的,如下所示:

	Dim Fso
	Dim myFile
	Set Fso = Server.CreateObject("Scripting.FileSystemObject")
	Set myFile = Fso.OpenTextFile(Server.MapPath("a.txt"),1,True)
	'A.TXT和ASP程序在同个目录下,如果没在一个目录,可以用绝对路径,把上一行的a.txt改为:d:\a.txt
	While Not myFile.AtEndOfStream
		Response.Write myFile.ReadLine & "<BR>"
	Wend
	myFile.Close
	Set myFile = Nothing
	Set Fso = Nothing

本例中,代码中增加了对象的关闭(即close)方法,是比较规范、完整的程序代码编写规则,上例中进行了省略。除此之外,本例中的OpenTextFile()方法也较上例不同,增加了两个参数:“1”和“true”。

其实对于大神来说,上述两段代码是完全一致的,只是细节之处有所差异,本质上用到的是相同的原理和方法。作为刚入门的小白,乍一看到确有种两种方式的错觉。

此外,除了逐行读取并显示txt中的数据外,还可以对txt中的全部数据进行一次读取,这种当然更为简单,代码如下:

	set fs=server.createobject("scripting.filesystemobject")
	filetxt=server.mappath("a.txt")
	set txt=fs.opentextfile(filetxt,1,true)
	if not txt.atendofstream then
		line=txt.ReadAll
		response.write line & "<br>"
	end if

本例中的txt.ReadAll方法即为读取txt中的全部数据并赋予line变量。

总结如下:

如果想读取文件中的所有数据,则需要使用:line=txt.ReadAll

如果想从文件中读取一行数据,则需要使用:line=txt.ReadLine

如果想从文件中读取N个字节的数据,则需要使用:line=txt.Read(N)

猜你喜欢

转载自blog.csdn.net/qhdzj87/article/details/82763688
今日推荐