天天看點

如何用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)

繼續閱讀