在Internet上,用ASP寫的計數器到處都是,本人覺得再在這裡談ASP寫計數器已沒有太大意義。後來想想還是有必要談一下,因為這不隻隻是在談計數器的編寫,而是在向大家介紹ASP的知識與應用技巧。
程式原始碼如下:
$#@60 ;%countlong=8
′countlong定義計數器顯示位數On Error Resume Next
′ 忽略所有的錯誤count=server.mappath(″count.txt″)
set cou = server.createobject(″scripting.filesystemobject″)
set out=cou.opentextfile(count,1,false,false)
counter=out.readline
out.close
′以上程式碼是開啟檔案count.txt並讀取一行,讀出目前計數器的值if session(″in″)$#@60;$#@62;″in″ then
′判斷用戶是否已進入主頁,以確保他按刷新或再次來到此頁面時計數器不會再加1
session(″in″)=″in″
set out = cou.createtextfile(count,true,false)
application.lock
counter=counter+1
′計數器加1
out.writeline(counter)
application.unlock
out.close
′以上程式碼是建立一個新的檔案count.txt並寫入一行,寫入加1後計數器的值end if
co=cstr(counter)
′cstr函數用來把數字型變數轉換成字元型for i = 1 to countlong-len(co)
response.write ″″
next
′上面的迴圈語句是完成計數器前面的0圖片的新增′len(co)函數是得到變數co的長度,countlong-len(co)就得到前面0圖片的個數for i= 1 to len(co)
response.write ″″
next
′mid(co,i,1)函數是用來從變數co的第i位元開始唸一個字元% $#@62 ;
這個計數器做得比較成功的地方是使用session防止用戶對計數器的多次刷新; 使用了文本文件記錄計數器的值,雖然代碼寫起來比較長,但比起用application對像要好得多,因為當伺服器reboot或改動global.asa時,application物件的值就會被清空; 還有就是用圖片代替了字符,看起來更美觀大方!
計數器的圖片你可以自己設計一下,0用檔名0.gif,1用1.gif,以此類推。