本文範例已經收錄在書本的「第十七章 資料流 與 I/O」!
檔案的應用,在程式設計上一直是個重點。雖然有了資料庫幫我們紀錄資料,但有些小資料不需要勞師動眾、也不必存放太久,如果用一個文字檔來記錄,反而更簡單。
舉例來說,尚未上線的系統、或是有些功能繁雜的程式要撰寫。我們就可以利用檔案的功能來做紀錄。一邊測試一邊記錄這些程式在各階段的運作狀況,每個階段成功與否都可以直接寫入文字檔裡面,不需要跟資料庫搶資源、搶連線。畢竟小檔案I/O的速度,一般來說都快過資料庫。
以前我做過B2B的案子,用Rosettanet XML來傳遞資料(關於Rosettanet,請看中文網站的說明,http://www.rosettanettaiwan.org.tw/)。當時用的技術是 VB 6.0 + ASP + MS BizTalk Server + MS SQL Server 2000。
依照實際的狀況,我們會同時用「檔案」與「資料庫」來記錄這些流程。底下的五大步驟,前三項都會用文字檔做紀錄,因為這些小資料是自己Debug(除錯)用的,往往是系統出問題才會去察看,也不太有保留的價值,所以我們採用文字檔來記錄。
1. 程式定時啟動(例如:每五分鐘啟動一次),並開始記錄處理流程。
2. 從資料庫搜尋資料。符合條件的紀錄就撈出來,組合成XML檔案。
(執行時間與XML檔案都會存成文字檔,存在專有的目錄底下)
3. 將XML檔案,轉換成 Rosettanet格式。
(執行時間與Rosettanet XML檔案都會存檔,放在專有的目錄底下)
4. 交給 Server準備發送。此時,就會用資料表來記錄時間與相關資料了。
5. 傳送給對方的Server。對方收到後,我們也會把時間記錄在資料表裡面。
註解:後面兩個流程要用資料表來做紀錄,是為了給客戶與主管查驗,日後也能統計與分析我們這套B2B系統的發送成功率等等。
除了大型的系統、複雜的程序需要做Log紀錄檔之外,網站常用的「訪客計數器」,也可以用檔案的方式來控管。可見存取檔案的用法,真的很多樣化。
以下是發表的新書內容: 本文範例已經收錄在書本的「第十七章 資料流 與 I/O」!
Q:每一天都用一個檔案,用來記錄當天每支程式內部的執行狀況。
以下是相關的規範:
1. 檔案統一放在 C:\MIS2000Lab_ASP.NET_Log目錄底下。
2. 每一天都用一個單獨的子目錄,子目錄名稱就是當天日期。
3. 檔名必須是以當天日期為名,副檔名是.log,例如:20081231.log。
4. 檔案內每一段訊息,都要記錄完整的日期與時間(年/月/日/時/分/秒)。
每段訊息各自獨立一行,格式如下:
[2008/04/01 14:00:33] Message: 錯誤訊息XXXYYY
5. 檔案內的文字,採用 Big5正體中文來編碼。
記錄檔案的後置程式碼如下,其實不難,大部分都學過了。
後續還有兩個衍生的範例.......有機會再公開
本文範例已經收錄在書本的「第十七章 資料流 與 I/O」!
..........................................................................................
相關文章,請看這一篇----FileUpload控制項,檔案上傳
相關內容,均收錄在我的新書裡面。請參考:[廣告] 新書上市-- ASP.NET專題實務(文魁出版)
...... 寄信給我 mis2000lab (at) 雅虎.com.台灣 ................................................................................................................
ASP.NET專題實務
(文魁出版,VB版 P8187 / C#版P09027)
下集已經出版囉~~~ASP.NET專題實務II:範例應用與4.0新功能 
.............................................................................................................. 寄信給我 mis2000lab (at) 雅虎.com.台灣 ........