ASP編程入門進階(十八):FSO組件之文件操作(上)

文章關鍵字:
<script language="javascript" src="http://www.5d.cn/ad/ads.asp?pid=1" type="text/javascript"></script>
FSO中除了可以對驅動器、文件夾的操作以外,功能最強大的就是對文件的操作了。它可以用來記數、內容管理、搜索還可生成動態HTML頁面等等。

  一、fso.OpenTextFile
  無需多說,fso.OpenTextFile就是打開某個文件了,一般情況之下是打開的txt文本文件。所以首先我們先建立一個txt文件,然後通過FSO來讀取其中的內容。

  1,info.txt

 


name:cnbruce
sex:male

  建立了該文件,下面再做個ASP頁面,當然最好兩個文件是在同一目錄下。

  2,opentxt.asp


<%
whichfile=server.mappath("info.txt")
Set fso = CreateObject("Scripting.FileSystemObject")
Set txt = fso.OpenTextFile(whichfile,1)
rline = txt.ReadLine
rline = rline & "<br>" & txt.ReadLine
Response.Write rline
txt.Close
%>

  需要注意:無論是通過FSO打開驅動器、打開文件夾、打開文件,以及以後要接觸到的打開數據庫,都只能是打開絕對物理路徑地址。但一般情況是上傳到空間服務商那,不能很直接地瞭解到自己文件的所在位置,所以強烈推薦使用server.mappath方法:平臺移植性強,適用性強。

  CreateObject("Scripting.FileSystemObject")建立了FSO組件的連接,fso.OpenTextFile(whichfile,1)打開了info.txt該文件。參數“1”表示“ForReading:以只讀方式打開文件。不能寫這個文件。”,其他還有參數“2”表示“ForWriting:以寫方式打開文件”,參數“8”表示“ForAppending:打開文件並從文件末尾開始寫”。

  打開了該文件,接下來是不是要顯示文件中的內容?那就通過txt.ReadLine方法讀取文本中的一整行,如果需要繼續讀取下一行,則繼續使用txt.ReadLine方法。當然初此還有其它的讀取方法,比如txt.Read(7)讀取指定數量的字符,txt.ReadAll返回文本中的全部內容。

  二、fso.CreateTextFile
  如fso.CreateFolder建立文件夾般,fso.CreateTextFile則是建立文件了。

  3,creattxt.asp

 


<%
whichfile=server.mappath("info.txt")
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile(whichfile,True)
MyFile.WriteLine("My Name Is CN-Bruce")
MyFile.WriteLine("My Sex Is Male")
MyFile.Close
%>
<a href="opentxt.asp">查看內容</a>

  本次建立的文件是上一info.txt文件,fso.CreateTextFile(whichfile,True)其中的參數true即表示能覆蓋已有文件。建立後需要向裏面添加數據就採用“MyFile.WriteLine”了。

  那現在就可以建立一個簡單的文本記數器了,還記得以前的記數?:1,通過application、session、global.asa進行記數;2,通過Counter組件進行記數。但兩者都有通病,就是不能保存,如果服務器重新啓動後,是不是所有記數全部清空了呢:)那現在就可以使用文本來記錄數據了,即使重啓,下次提取的也還是該文件。

  試驗:文本計數器

  首先建立一記數的文本文件counter.txt,設定初始值爲“1”

  4,counter.txt

 


1

  接着是記數的ASP文件,功能是顯示文本的記數,本做加1的記數,然後還要將新的記數寫入文本文件。

  5,txtcount.asp

 


<%
whichfile=server.mappath("counter.txt")
'打開文件並將其值讀取,最後關閉連接釋放資源
set fso=createobject("Scripting.FileSystemObject")
set openfile=fso.opentextfile(whichfile,1)
visitors=openfile.readline
openfile.close
'頁面顯示記數內容並做加1運算
response.write "您是本頁的第"&visitors&"位訪客"
visitors=visitors+1
'將新的數值添加寫入到文本,最後關閉所有連接釋放資源
set creatfile=fso.createtextfile(whichfile)
creatfile.writeLine(visitors)
creatfile.close
set fso=nothing
%>

  那根據這個可以繼續地擴展內容:比如讓記數用數字圖片顯示。當然前提就是你需要0-9的10張記數圖片,並將此圖片放於img文件夾中。
  下爲一增強的txtcount.asp內容代碼。

 


<%
whichfile=server.mappath("counter.txt")

set fso=createobject("Scripting.FileSystemObject")
set openfile=fso.opentextfile(whichfile,1)
visitors=openfile.readline
openfile.close
CountLen=len(visitors)
response.write "您是本頁的第"

for i=1 to 6-countLen '表示最大值999999
response.write "<img src=img/0.gif></img>"
next
for i=1 to countlen
response.write "<img src=img/" & mid(visitors,i,1) & ".gif></img>"
next
response.write "位訪客"

visitors=visitors+1
set creatfile=fso.createtextfile(whichfile)
creatfile.writeLine(visitors)
creatfile.close
set fso=nothing
%>

  本程序中採用的是mid函數,該函數的作用是返回某字符串中從第幾位字符開始的幾個字符。格式即爲:Mid(string,start,length)

 


<script language=vbs>
cn_string= "cnbruce love cnrose"
cn_start = 9
cn_length = 4
alert (mid(cn_string,cn_start,cn_length))
</script>

  效果頁參看

  記數文本查看

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章