為了使用fso來執行所有的工作,首先要建立物件,**就象下面這樣:
< %
set fso = server.createobject("scripting.filesystemobject")
% >
這樣就建立了fso並且賦予變數fso,接著就可以使用熟悉的object.method語法來執行檔案系統的操作〔檢視visual basic文件,獲取更多的關於物件和物件嚮導程式設計的知識〕。在這裡,我們可以使用fso.method 或者 fso.property,這些將在下面的例子中看到。
fso模型位於由微軟提供的指令碼執行時間dll檔案中,它是scrrun.dll。你可以在任何應用程式中引用這個dll檔案,比如ms access,word。 就是說,並非僅僅限制在asp中應用它。
這裡有乙個簡要的fso方法列表:
fso方法
copyfile 拷貝乙個或者多個檔案到新路徑
createtextfile 建立檔案並且返回乙個textstream物件
deletefile 刪除乙個檔案
opentextfile 開啟檔案並且返回textstream物件,以便讀取或者追加
假設你在乙個表單中收集了一些使用者資訊,這裡是乙個簡單表單html**:
'< html>
'< body>
'< form action="formhandler.asp" method="post">
'< input type="text" size="10" name="username">
'< input type="text" size="10" name="homepage">
'< input type="text" size="10" name="email">
'< /form>
'< /body>
'< /html>
實際操作時,請將上述文字前面的'符號去掉.
再看看formhandler.asp中處理表單的**:
< %
' get form info
strname = request.form("username")
strhomepage = request.form("homepage")
stremail = request.form("email")
' create the fso object
set fso = server.createobject("scripting.filesystemobject")
上述幾句話的意思是獲取表單域的值並且賦值到變數。如果你不是很了解的話,可以看看本站asp自學部分.下面的**就是寫檔案了:
path = "c: emp est.txt"
' open the file
' write the info to the file
file.write(strname) & vbcrlf
file.write(strhomepage) & vbcrlf
file.write(stremail) & vbcrlf
' close and clean up
file.close
set file = nothing
set fso = nothing
回想一下,opentextfile方法返回乙個textstream物件,它是fso模型中的另外乙個物件。textstream物件揭示了操作檔案內容的方法,比如寫、讀一行、跳過一行。vb常量vbcrlf產生乙個換行符。
在opentextfile的命令引數中定義了true,這就告訴了系統,如果檔案不存在,就建立它。如果檔案不存在,並且沒有定義true引數,就會出錯。
現在轉到目錄c: emp,開啟test.txt,你可以看到如下的資訊:
user's name
user's home page
user's email
當然,這些單詞可以被輸入在表單中的任何內容所替換。
記的資訊中分離出相關部分,因為沒有象資料庫一樣擁有結構化的列。
我們知道,在所建立的檔案中,第1行是使用者名稱,第2行是他們的主頁,第3行是他們的電子郵件位址。隨後登記的用
戶也是按照這樣的結構儲存他們的資訊,所以每3行將包含乙個使用者的登記資訊。知道了這些,就可以編寫下面的**來顯
示資訊:
< %
' create the fso object
set fso = server.createobject("scripting.filesystemobject")
path = "c: emp est.txt"
' open the file
set file = fso.opentextfile(path, 1) < -- for
reading
接著,分析每一行,並且格式化資料:
do until file.atendofstream
response.write("name: " & file.readline & " ")
response.write("home page: " & file.readline & " ")
response.write("email: " & file.readline & "< p>")
loop
' close and clean up
file.close
set file = nothing
set fso = nothing
%>
這裡僅僅做了乙個非常簡單的輸出,但是你可以根據情況包含**或者dhtml表單資訊。
如果已經正確地建立並寫入了檔案,上面的小小迴圈將合適地列出資料庫中的每乙個人的資訊。readline方法讀取1
行內容,直到遇到換行符,隨後的readline呼叫將讀取下一行。atendofstream是textstream物件的屬性,它告訴我們何時
遇到檔案的尾部。
假設由於某種原因,我們沒有正確地形成檔案,如果乙個使用者只有2行資訊而不是3行,那麼就會產生一些錯誤。我們
這裡的迴圈取回檔案中的下3行資訊,如果沒有3行多的資訊,就將出現如下的錯誤資訊:
server object error 'asp 0177 : 800a003e'
所以,一定要新增一些錯誤處理**,以防檔案中插入了多餘的行或者少了必要的行資訊。
上面討論了基本知識,然後說說許可權許可的問題。fso以建立它的使用者帳戶許可權執行,換言之,如果有人從internet
上訪問你的頁面,那麼這個internet帳戶就建立fso。如果以administrator的身份登入計算機,並且登入頁面,那麼
administrator帳戶就建立了fso。這是非常重要的,因為一定的帳戶擁有一定的許可權,並且fso需要一些許可權從而能完整的
執行功能。
internet帳戶(iuser_machinename,machinename是伺服器的名字)一般只擁有讀許可權,這意味著使用者將不能寫入留
言簿檔案。然而,有幾個選擇可以繞過這個問題。
果要求使用者登入,就必須要知道他們是誰。因此,跳過這個選擇,看下乙個。
第2個方法是建立乙個目錄或者檔案,iuser_machinename使用者對此有寫許可權。這樣做可能開放了一些潛在的安全漏
洞,因為任何知道正確目錄並具備一定web技巧的人就能在伺服器上填充內容。這是乙個很嚴重的禁忌。所以你必須確認在
隱藏的場所儲存了這些可寫目錄的資訊,並且盡可能地將這些目錄設定在web目錄結構以外(比如在windows下,這是乙個
不在inetpub目錄下的乙個目錄)。
建立搜尋引擎的關鍵是遞迴。主要地,編寫一段**搜尋目錄下的檔案,然後對所有的目錄迴圈執行同樣的**。因為不能確定總共有多少個子目錄,所以必須一遍又一遍地執行搜尋**,直到結束。遞迴呼叫非常好!
asp中for迴圈的使用方法
迴圈是指在指定情況下,多次重複執行一組語句。最常用 for next do loop 1 重複執行的語句叫迴圈語句。迴圈語句可以分為三種型別 1 當條件不為假之前的時候重複執行語句。2 當條件變為真之前重複執行語句。3 按指定的次數重複執行語句。2 for next 迴圈 如果重複操作的次數固定,使...
ASP中FSO元件的屬性和方法(三)
fso的一些列屬性如下 drivers返回本地機器的drivers集合。textsteam 使用textsteam的方法可以很容易地操作文字檔案 textsteam的方法屬性 方法 close關閉開啟的文字流檔案 read characters 檔案中一定數量的字元,並把它寫入到一字元中。reala...
MFC中Tab控制項的使用方法
1 首先建立乙個mfc對話方塊框架,在對話方塊資源上從工具箱中新增上乙個tab control 控制項,根據需要修改一下屬性,然後右擊控制項,為這個控制項新增乙個變數,將此控制項跟乙個ctabctrl類變數繫結在一起,這裡設為m tabctrl 2 建立兩個新的對話方塊資源,其屬性作如下修改 bor...