計數器|設計|詳解
(三)與頁面分離的圖象計數器 人們的追求是永無止境的,也許你需要一個更有個性的圖形數字計數器,而不是簡單的文本數字計數器。沒問題,現在我們就來看看用ASP是怎樣來實現圖形計數器功能的。要實現圖形計數器,關鍵點在於如何?把計數器檔案中的資料值轉變為對應的圖象表示。因為十進位數有0,1,2,3,4,5,6,7,8,9共十個不同的數數字,我們需要有十個對應的圖象,且圖象的檔案名稱字要與顯示的數字對應起來,比如0對應的數字圖象的檔案名稱字就是0.gif,1對應的就是1.gif,...(圖象自己可以用Photoshop等工具製作,或者從網路上下載)。這裡我們要用到VBScript函數Len(string | varname)、Mid(string,start[,length])。由Len(counter)可得到計數器值的位元,由Mid(counter,i,1)可以得到計數器值的第i位上的數字,我們可利用這個值來調用相應的數字圖象。用For迴圈語句,我們不難得出計數器值各個位上的數字並轉化成對應的數字圖象,這樣,我們就能實現文本數值到圖象數位轉變。下面就是一個用ASP編寫的圖象計數器執行個體,因為大部分代碼前面都分析過,所以代碼中只注釋了部分語句。
與頁面分離的圖象計數器imgcounter.asp代碼:
<% @language="VBScript"%>
<%
dim images(20)
'定義一數組,用來存放顯示每一位元字圖象的語句
CountFile=Server.MapPath("imgcounter.txt")
Set FileObject=Server.CreateObject("Scripting.FileSystemObject")
Set Out=FileObject.OpenTextFile(CountFile,1,FALSE,FALSE)
counter=Out.ReadLine
Out.Close
SET FileObject=Server.CreateObject("Scripting.FileSystemObject")
Set Out=FileObject.CreateTextFile(CountFile,TRUE,FALSE)
Application.lock
counter= counter + 1
Out.WriteLine(counter)
Application.unlock
countlen=len(counter)
'得到計數器值的位元
for i=1 to countlen
images(i)="<img src="&"http://202.101.209.75/asptemp/counter/images/";&"/" & mid(counter,i,1) & ".gif></img>"
'由迴圈語句得到各個位上數值對應圖象的顯示代碼(html),並把它存在數組中
'具體使用時請注意圖象的實際伺服器及目錄路徑
response.write"document.write('"&images(i)&"');"
'調用函數Document.write輸出顯示數字圖象的html代碼
next
Out.Close
%>
在要計數的頁面加入如下的代碼:
<p>
您是第
<script language="JavaScript" src="http://202.101.209.75/asptemp/counter/imgcounter.asp";>
//引用時注意ASP計數器所在的伺服器及目錄路徑。
</script>
位來客
</p>
附註:以上asp計數器均在Windows NT Server 4.0(中文) / IIS3.0 下測試通過。以下任何一種環境都可執行ASP:
一、Windows NT Server 4.0 / IIS3.0以上
二、Windows NT WorkStation 4.0 / Microsoft Peer Web Service3.0以上
三、Windows 95/98 / Microsoft Personal Web Server 1.0a以上