310 likes | 445 Views
第 9 章 Server 物件與文字檔案處理. 9-1 伺服器的系統資訊 9-2 Server 物件的使用 9-3 ASPError 錯誤處理物件 9-4 文字檔案的操作 9-5 文字檔案的讀取與寫入. 9-1 伺服器的系統資訊. 9-1-1 伺服器系統資訊的內容 9-1-2 取得伺服器環境變數. 9-1-1 伺服器系統資訊的內容. Web 伺服器的系統資訊就是伺服器的環境變數。 Request 物件的資料集合 ServerVariables 可以取得伺服器的環境變數。. 9-1-2 取得伺服器環境變數.
E N D
第9章 Server物件與文字檔案處理 • 9-1 伺服器的系統資訊 • 9-2 Server物件的使用 • 9-3 ASPError錯誤處理物件 • 9-4 文字檔案的操作 • 9-5 文字檔案的讀取與寫入
9-1 伺服器的系統資訊 • 9-1-1 伺服器系統資訊的內容 • 9-1-2 取得伺服器環境變數
9-1-1 伺服器系統資訊的內容 • Web伺服器的系統資訊就是伺服器的環境變數。 • Request物件的資料集合ServerVariables可以取得伺服器的環境變數。
9-1-2 取得伺服器環境變數 • 使用Request物件的ServerVariables資料集合,可以取得環境變數的內容,如下: IPAddress = Request.ServerVariables("REMOTE_ADDR") strPath = Request.ServerVariables("PATH_INFO") • 使用For Each迴路取得所有的環境變數,如下所示: For Each ServerVar In Request.ServerVariables strValue = Request.Servervariables(ServerVar) Next
9-2 Server物件的使用 • 9-2-1 ASP使用AcitveX元件 • 9-2-2 取得伺服器路徑 • 9-2-3 伺服端網頁轉向 • 9-2-4 伺服端執行網頁
9-2-1 ASP使用AcitveX元件 • 在ASP程式使用外部ActiveX元件,可以使用Server.CreateObject方法建立所需的物件,如下所示: Set objFSO=Server.CreateObject("Scripting.FileSystemObject") • 如果需要重新指定物件的內容,我們需要使用Set指令,如下所示: Set objFSO=Nothing • 重設物件變數為Nothing,就是釋放物件。
9-2-2 取得伺服器路徑 • 取得執行ASP程式的虛擬目錄,請使用ServerVariables資料集合的PATH_INFO參數取得,如下所示: Request.ServerVariables("PATH_INFO") • Server.MapPath方法可以轉換虛擬目錄成為所需的實際路徑,其程式碼如下所示: StrPath=Server.MapPath(Request.ServerVariables("PATH_INFO")) • 取得ASP程式Ch9-1-2.asp的實際路徑,如下所示: StrPath = Server.MapPath("/Ch9-1-2.asp")
9-2-3 伺服端網頁轉向 • Server.Transfer為ASP 3.0提供的全新轉向方法。 • Server.Transfer轉向操作完全在伺服端完成,並不會浪費頻寬,而且使用方式和Response.Redirct方法幾乎相同,如下所示: Server.Transfer("Ch9-2-2.asp")
9-2-4 伺服端執行網頁 • Server.Execute方法屬於ASP 3.0的方法。 • Execute方法在轉向的ASP程式執行完成後,還會回到呼叫轉向的ASP程式,其程式碼如下所示: …… Server.Execute("Ch9-2-4s.asp") …… • 程式碼在執行轉向到ASP程式Ch9-2-4s.asp,在執行完後還會回到上述程式碼,執行Server.Execute方法的下一列程式碼。
9-3 ASPError錯誤處理物件 • 9-3-1 自訂錯誤網頁 • 9-3-2 ASPError物件的使用
9-3-1 自訂錯誤網頁 • 在IIS的Internet服務管理員的Web站台,在「內容」對話方塊的自訂錯誤標籤可以看到預設的錯誤提示訊息。 • HTTP錯誤的類型共有三種,如下所示: • 錯誤文字內容:這是伺服器的預設值。 • 檔案類型:HTML文件。 • URL類型:可以使用ASP程式。
9-3-2 ASPError物件的使用-1 • ASP 3.0版提供全新的錯誤處理物件ASPError物件。 • 當錯誤產生時,在ASP程式可以使用Server.GetLastError方法取得最近一個ASP程式錯誤,如下所示: Set objASPError = Server.GetLastError() • 然後使用ASPError物件屬性取得錯誤資訊。
9-3-2 ASPError物件的使用-2 • ASPError物件的常用屬性,如下表所示:
9-4 文字檔案的操作 • 9-4-1 FileSystemObject物件的基礎 • 9-4-2 建立文字檔案 • 9-4-3 檢查檔案是否存在 • 9-4-4 刪除檔案 • 9-4-5 取得檔案屬性
9-4-1 FileSystemObject物件的基礎 • FileSystemObject物件模型簡稱FSO,FSO能夠取得伺服器磁碟機的相關資訊,或在伺服器新增、移動、變更、建立或刪除資料夾,處理文字檔案內容的讀寫。 • 建立FSO物件,其程式碼如下所示: Dim objFSO Set objFSO = CreateObject("Scriptiong.FilesystemObject")
9-4-2 建立文字檔案 • 使用FSO物件可以建立全新的文字檔案,使用的為CreateTextFile方法,其程式碼如下所示: Set objStream=objFSO.CreateTextFile(strPath, True) • 程式碼建立objStream文字資料流物件,並且建立文字檔案,其參數如下: • objFSO:FSO物件。 • strPath:檔案的實際路徑。 • True:參數為True表示覆寫檔案,False表示不覆寫。
9-4-3 檢查檔案是否存在 • 在建立文字檔案前需要檢查檔案是否存在,FSO物件提供FileExists方法檢查檔案是否存在,If Then條件架構,如下所示: If objFSO.FileExists(strPath) Then ……. End If
9-4-4 刪除檔案 • FSO物件的GetFile方法可以取得File物件的檔案資訊,如下所示: Set objFile = objFSO.GetFile(strPath) • 程式碼在取得指定檔案的File物件,接著可以使用File物件的方法進行檔案的操作,例如:刪除檔案,如下所示: objFile.Delete
9-4-5 取得檔案屬性 • File物件可以取得檔案的資訊,在取得指定檔案的File物件後,如下所示: Set objFile = objFSO.GetFile(strPath) • 程式碼在取得File物件後,就可以使用屬性取得檔案資訊。
9-5 文字檔案的讀取與寫入 • 9-5-1 如何讀取與寫入文字檔案 • 9-5-2 寫入資料到文字檔案 • 9-5-3 寫入空白行到文字檔案 • 9-5-4 寫入一行資料到文字檔案 • 9-5-5 新增文字到文字檔案 • 9-5-6 讀取文字檔案的字元 • 9-5-7 讀取文字檔的一行 • 9-5-8 讀取整個文字檔案 • 9-5-9 另一種方法讀取整個文字檔案 • 9-5-10 跳過幾行讀取文字檔案
9-5-1 如何讀取與寫入文字檔案 • FSO物件讀寫的文字檔為是一種文字資料流的TextStream物件,只能循序的讀寫,讀寫的步驟如下所示: • 第一步:建立FileSystemObject物件 • 第二步:開啟文字檔案 • 第三步:執行文字檔案的讀寫 • 第四步:關閉文字檔案
9-5-2 寫入資料到文字檔案 • TextStream物件的寫入文字檔案的方法有很多,Write方法可以將參數的字串寫入檔案,不過在寫入時並不換行,如下所示: objStream.Write("FileSystemObject物件")
9-5-3 寫入空白行到文字檔案 • Write方法寫入的資料並不會換行,我們可以在寫入時加上空白列,如下所示: objStream.WriteBlankLines(2) • 程式碼可以加上空白列,參數為列數,以此例為兩列。
9-5-4 寫入一行資料到文字檔案 • WriteLine方法可以寫入含換行的字串,如下所示: objStream.WriteLine("FileSystemObject物件") • 程式碼可以寫入一行文字到檔案。
9-5-5 新增文字到文字檔案 • ForWriting常數表示文字檔允許寫入,這種寫入方式在寫入前會清除文字檔案的所有內容,如同一個新的檔案。 • 如果不想清除檔案內容,ForAppending常數只是將資料新增到目前檔案的檔尾,表示檔案可以新增內容。
9-5-6 讀取文字檔案的字元-1 • 在開啟唯讀的文字檔案,如下所示: Set objStream=objFSO.OpenTextFile(strPath,ForReading,False,False) • 接著可以讀取幾個字,如下所示: strOutput=objStream.Read(17) • 程式碼使用Read方法讀取目前檔案指標開始的17個字,英文為字母,中文為一個字,參數值就是讀取的字數。
9-5-7 讀取文字檔的一行 • TextStream物件也可以一行一行的讀取文字檔案的內容,如下所示: strOutput=objStream.ReadLine
9-5-8 讀取整個文字檔案 • TextStream物件可以讀取整個文字檔案的內容,如下所示: strOutput=objStream.ReadAll • 如果需要將換行符號取代為<br>標籤,如此才能正確的顯示換行,如下所示: strOutput=Replace(strOutput,Chr(10),"<br>")
9-5-9 另一種方法讀取整個文字檔案 • 如果需要使用ReadLine方法讀取整個文字檔案的內容,我們需要使用迴路讀取,如下所示: Do While Not objStream.AtEndOfStream strLine = objStream.ReadLine Loop
9-5-10 跳過幾行讀取文字檔案 • 在檔案指標的應用上,我們可以使用TextStream物件的方法跳過幾個字元不讀取,如下所示: objStream.Skip(16) • 程式碼的Skip方法只是移動檔案指標,並不會讀取文字內容,參數為移動的字數,以此例將跳過16個字。 • 如果想跳過一整列,可以使用SkipLine方法,如下所示: objStream.SkipLine