ASP編程入門進階(十八):FSO組件之文件操作(上)
更新時間:2007年01月03日 00:00:00 作者:
FSO中除了可以對驅(qū)動器、文件夾的操作以外,功能最強大的就是對文件的操作了。它可以用來記數(shù)、內(nèi)容管理、搜索還可生成動態(tài)HTML頁面等等。
一、fso.OpenTextFile
無需多說,fso.OpenTextFile就是打開某個文件了,一般情況之下是打開的txt文本文件。所以首先我們先建立一個txt文件,然后通過FSO來讀取其中的內(nèi)容。
1,info.txt
建立了該文件,下面再做個ASP頁面,當(dāng)然最好兩個文件是在同一目錄下。
2,opentxt.asp
需要注意:無論是通過FSO打開驅(qū)動器、打開文件夾、打開文件,以及以后要接觸到的打開數(shù)據(jù)庫,都只能是打開絕對物理路徑地址。但一般情況是上傳到空間服務(wù)商那,不能很直接地了解到自己文件的所在位置,所以強烈推薦使用server.mappath方法:平臺移植性強,適用性強。
CreateObject("Scripting.FileSystemObject")建立了FSO組件的連接,fso.OpenTextFile(whichfile,1)打開了info.txt該文件。參數(shù)“1”表示“ForReading:以只讀方式打開文件。不能寫這個文件。”,其他還有參數(shù)“2”表示“ForWriting:以寫方式打開文件”,參數(shù)“8”表示“ForAppending:打開文件并從文件末尾開始寫”。
打開了該文件,接下來是不是要顯示文件中的內(nèi)容?那就通過txt.ReadLine方法讀取文本中的一整行,如果需要繼續(xù)讀取下一行,則繼續(xù)使用txt.ReadLine方法。當(dāng)然初此還有其它的讀取方法,比如txt.Read(7)讀取指定數(shù)量的字符,txt.ReadAll返回文本中的全部內(nèi)容。
二、fso.CreateTextFile
如fso.CreateFolder建立文件夾般,fso.CreateTextFile則是建立文件了。
3,creattxt.asp
本次建立的文件是上一info.txt文件,fso.CreateTextFile(whichfile,True)其中的參數(shù)true即表示能覆蓋已有文件。建立后需要向里面添加數(shù)據(jù)就采用“MyFile.WriteLine”了。
那現(xiàn)在就可以建立一個簡單的文本記數(shù)器了,還記得以前的記數(shù)?:1,通過application、session、global.asa進行記數(shù);2,通過Counter組件進行記數(shù)。但兩者都有通病,就是不能保存,如果服務(wù)器重新啟動后,是不是所有記數(shù)全部清空了呢:)那現(xiàn)在就可以使用文本來記錄數(shù)據(jù)了,即使重啟,下次提取的也還是該文件。
試驗:文本計數(shù)器
首先建立一記數(shù)的文本文件counter.txt,設(shè)定初始值為“1”
4,counter.txt
接著是記數(shù)的ASP文件,功能是顯示文本的記數(shù),本做加1的記數(shù),然后還要將新的記數(shù)寫入文本文件。
5,txtcount.asp
那根據(jù)這個可以繼續(xù)地擴展內(nèi)容:比如讓記數(shù)用數(shù)字圖片顯示。當(dāng)然前提就是你需要0-9的10張記數(shù)圖片,并將此圖片放于img文件夾中。
下為一增強的txtcount.asp內(nèi)容代碼
本程序中采用的是mid函數(shù),該函數(shù)的作用是返回某字符串中從第幾位字符開始的幾個字符。格式即為:Mid(string,start,length)
[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]
效果頁參看http://www.cnbruce.com/code/txtcount.asp
記數(shù)文本查看:http://www.cnbruce.com/code/counter.txt
一、fso.OpenTextFile
無需多說,fso.OpenTextFile就是打開某個文件了,一般情況之下是打開的txt文本文件。所以首先我們先建立一個txt文件,然后通過FSO來讀取其中的內(nèi)容。
1,info.txt
name:cnbruce sex:male |
建立了該文件,下面再做個ASP頁面,當(dāng)然最好兩個文件是在同一目錄下。
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打開驅(qū)動器、打開文件夾、打開文件,以及以后要接觸到的打開數(shù)據(jù)庫,都只能是打開絕對物理路徑地址。但一般情況是上傳到空間服務(wù)商那,不能很直接地了解到自己文件的所在位置,所以強烈推薦使用server.mappath方法:平臺移植性強,適用性強。
CreateObject("Scripting.FileSystemObject")建立了FSO組件的連接,fso.OpenTextFile(whichfile,1)打開了info.txt該文件。參數(shù)“1”表示“ForReading:以只讀方式打開文件。不能寫這個文件。”,其他還有參數(shù)“2”表示“ForWriting:以寫方式打開文件”,參數(shù)“8”表示“ForAppending:打開文件并從文件末尾開始寫”。
打開了該文件,接下來是不是要顯示文件中的內(nèi)容?那就通過txt.ReadLine方法讀取文本中的一整行,如果需要繼續(xù)讀取下一行,則繼續(xù)使用txt.ReadLine方法。當(dāng)然初此還有其它的讀取方法,比如txt.Read(7)讀取指定數(shù)量的字符,txt.ReadAll返回文本中的全部內(nèi)容。
二、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">查看內(nèi)容</a> |
本次建立的文件是上一info.txt文件,fso.CreateTextFile(whichfile,True)其中的參數(shù)true即表示能覆蓋已有文件。建立后需要向里面添加數(shù)據(jù)就采用“MyFile.WriteLine”了。
那現(xiàn)在就可以建立一個簡單的文本記數(shù)器了,還記得以前的記數(shù)?:1,通過application、session、global.asa進行記數(shù);2,通過Counter組件進行記數(shù)。但兩者都有通病,就是不能保存,如果服務(wù)器重新啟動后,是不是所有記數(shù)全部清空了呢:)那現(xiàn)在就可以使用文本來記錄數(shù)據(jù)了,即使重啟,下次提取的也還是該文件。
試驗:文本計數(shù)器
首先建立一記數(shù)的文本文件counter.txt,設(shè)定初始值為“1”
4,counter.txt
1 |
接著是記數(shù)的ASP文件,功能是顯示文本的記數(shù),本做加1的記數(shù),然后還要將新的記數(shù)寫入文本文件。
5,txtcount.asp
<% whichfile=server.mappath("counter.txt") '打開文件并將其值讀取,最后關(guān)閉連接釋放資源 set fso=createobject("Scripting.FileSystemObject") set openfile=fso.opentextfile(whichfile,1) visitors=openfile.readline openfile.close '頁面顯示記數(shù)內(nèi)容并做加1運算 response.write "您是本頁的第"&visitors&"位訪客" visitors=visitors+1 '將新的數(shù)值添加寫入到文本,最后關(guān)閉所有連接釋放資源 set creatfile=fso.createtextfile(whichfile) creatfile.writeLine(visitors) creatfile.close set fso=nothing %> |
那根據(jù)這個可以繼續(xù)地擴展內(nèi)容:比如讓記數(shù)用數(shù)字圖片顯示。當(dāng)然前提就是你需要0-9的10張記數(shù)圖片,并將此圖片放于img文件夾中。
下為一增強的txtcount.asp內(nèi)容代碼
<% 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函數(shù),該函數(shù)的作用是返回某字符串中從第幾位字符開始的幾個字符。格式即為:Mid(string,start,length)
[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]
效果頁參看http://www.cnbruce.com/code/txtcount.asp
記數(shù)文本查看:http://www.cnbruce.com/code/counter.txt
相關(guān)文章
javascript asp教程More About Recordsets
javascript asp教程More About Recordsets...2007-03-03ASP Recordset 分頁顯示數(shù)據(jù)的方法(修正版)
最近給別人培訓(xùn)asp 分頁,對于asp的入門新手來說,最簡單的分頁就是用Recordset 分頁技術(shù)了,他主要用于一些少量數(shù)據(jù)的分頁,對于新手學(xué)習(xí)是最好的了,對于大量數(shù)據(jù)分頁不建議用。2008-11-11