(三)与页面分离的图象计数器
人们的追求是永无止境的,也许你需要一个更有个性的图形数字计数器,而不是简单的文本数字计数器。没问题,现在我们就来看看用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以上