ASP中FSO控制項的使用方法

2021-04-13 07:51:11 字數 3807 閱讀 8636

為了使用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...