學會了FSO提取文件值,也學會了將信息輸入到文件中,那下面就再來應用應用下。
不知道你有沒有這樣的習慣:看到一個文件,不自覺的右鍵選擇用記事本打開。呵呵,幾乎沒有哪個文件是不可以的。所以現在,可以默認所有文件都是文本,只是后綴名不同而已;那么也就是說,現在可以提取任一文件的內容信息。OK,就來想象一下:
1,提取一個文件的路徑(采用file按鈕進行查找定位)
2,將該路徑文件打開,并讀取所有行
3,顯示讀取的信息
一、viewcode.asp
<% |
以上程序調試時,可以選擇html,asp頁面,也可以打開任一應用程序等。
定義的ShowCode函數,主要作用是打開、讀取并顯示文件中所有信息內容。注意添加了server.HTMLEncode(rsline),針對含有標準HTML代碼的文件。
顯示文件中所有行即用一條件循環進行遍歷顯示了。
While Not cnrs.AtEndOfStream
...
Wend
接著,下面的這個例題具體就涉及open方法的問題了,還記得?正常情況之下打開文件是采用fso.OpenTextFile("c:\testfile.txt",1),參數1的作用是:以只讀模式打開文件。不能對此文件進行寫操作。如果現在已經存在一文件,需要進行追加寫入,則該怎么辦呢?簡單,參數為8即可。
PS:這里還有一種讀取的方法。
|
這有什么用呢?呵呵,亞瑪遜的網絡故事接龍就是如此:能接龍就需要首先要顯示原有故事,然后自己添加故事寫入文件。這其中的寫入文件最講究的就是追加寫入了。所以下面就可以實現。
二、story.asp
|
整個就是一很簡單的讀取信息和加入信息的混合利用,相信有了前面的基礎看懂應該不成問題。當然還缺少個story.txt文件,里面寫好故事開頭就可以了。
調試地址:
http://www.cnbruce.com/code/story.asp
再下面,繼續來,該側重點主要就是練習一些函數的使用技巧了。
1,instr函數:返回某字符串在另一字符串中第一次出現的位置。
比如現在查找字母“A”在字符串“A110B121C119D1861”中第一次出現的位置,則可以
[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]
同樣字母“B”的位置也就能確定。現在就來最關鍵的:提前字母“A”和“B”中間的值“110”。
還記得mid函數嗎?mid函數的主要作用是:從字符串中返回指定數目的字符。
比如現在的“110”則應該是從字符串的第2位取得3個單位的值。
[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]
但設想一下:如果不是“110”,而是“1100”,那是不是要提取4位……這樣就顯出程序的不夠完美。
所以繼續思考:所提取的值,永遠是在字母“A”后面的,且值也永遠是在字母“A”和“B”之間的,那么只要分別提取出“A”、“B”的位置,則中間數值的起始位應是字母“A”位+1,中間數值的長度應是字母“B”位-字母“A”位-1
那么現在就可以讓程序完美起來:
[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]
OK,那么現在你也就完全可以把字母“B”、“C”、“D”后面的值一一提取了。
當然需要注意的就是“D”后面有幾位怎么取呢?采用字符串總長度-字母D所在位置數就可以了。
[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]
用到現在,你也許確實學到了不少,但也許會提出疑問:這個放在FSO文件操作里有什么作用呢?
那下面才是我們的正題:用FSO進行簡單的文本投票。
投票頁面首要的就是顯示各類項目的投票數,并相應賦于某個變量。然后判斷本次投票的選相,相對應地將投票數值加1,完畢后再將所有值繼續寫入文本。
1,一個HTML表單頁website.html
以做投票點擊的平臺。
[Ctrl+A 全部選擇進行拷貝 提示:可先修改部分代碼,再點擊運行]
2,接受表單頁值的result.asp
|
有了上面函數的基礎,看這個應該不是很難的
3,最后不要忘了的記數文件site.txt
格式:A1B1C1D1
調試地址:
http://www.cnbruce.com/code/website.html
OK,三個文件就可以勝任一個很簡單的投票系統了,如果要加強,需要細化的則結合以前的知識吧,比如投過一次后設置session或者cookies,當再次投票時候判斷如果session或者cookies存在則不允許,也就是簡單的投票防作假手段了……當然更多的還是要自己去想去實踐了。