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

來源:互聯網
上載者:User

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><br />cn_string= "cnbruce love cnrose"<br />cn_start = 9<br />cn_length = 4<br />alert (mid(cn_string,cn_start,cn_length))<br /></script><br />
[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]
效果頁參看http://www.cnbruce.com/code/txtcount.asp

記數文本查看:http://www.cnbruce.com/code/counter.txt

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.