日期:2010-05-06  浏览次数:20901 次

  文章简介:ASP是目前互联网上应用最为广泛的动态网页程序语言之一。而提到它我们总是和Access或SQLSever等数据库放在一起,诚然他们的结合可以使我们更自由轻松的管理与发布站点,但你可知道ASP和文本文件相结合也可以实现一些小巧且实用的功能哦。现在通过三个应用于网页上的小例子,让我们领略一下二者合璧的风采。

    ASP是目前互联网上应用最为广泛的动态网页程序语言之一。而提到它我们总是和Access或SQLSever等数据库放在一起,诚然他们的结合可以使我们更自由轻松的管理与发布站点,但你可知道ASP和文本文件相结合也可以实现一些小巧且实用的功能哦。现在通过三个应用于网页上的小例子,让我们领略一下二者合璧的风采。

    在ASP中我们可以使用FileSystemObject对象的OpenTextFile方法打开文本文件,其格式如下:

Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fp=fso.OpenTextFile(Server.MapPath("file.txt"))  'file.txt就是所要打开的文本文件

    知道了这一点,我们首先编写一个简单的“消息发布系统”。参照图1的格式建立一个message.txt文件先。

接着运行任意的文本编辑器录入以下代码,将它保存在与message.txt同一目录下,命名为message.asp。

<html><head><title>基于文本的消息发布系统</title></head>
<body>
<table border="1" cellspacing="0" cellpadding="1" bordercolorlight="#dfdfdf" bordercolordark="#ffffff" align="center">
  <tr bgcolor="#cccce6">
    <td algin="center" colspan="2">最新消息</td>
  </tr>
<%
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fp=fso.OpenTextFile(Server.MapPath("message.txt"))
'打开message.txt

Do While fp.AtEndOfStream<>true
   s=fp.ReadLine  '读取一条数据

   p=Instr(s,"*")  '取得*号的位置
   Messagetitle=Mid(s,1,p-1)  '取得*号前边的字符串(消息标题)
   s=Mid(s,p+1,Len(s)-p)  '设变量s为*号后边的字符串

   p=Instr(s,"*")
   MessageUrl=Mid(s,1,p-1)  '取得*号后边的字符串(链接地址)
   s=Mid(s,p+1,Len(s)-p)

   ttime=s  '设定消息发布时间ttime为s
%>
  <tr>

   <td><a href='<%=MessageUrl%>'><%=Messagetitle%></a></td>
   <td><%=ttime%></td>
  </tr>
<!--生成表格,把消息显示出来-->
<%
Loop
Fp.close
Set fp=Nothing
Set fso=Nothing
%>
</table>
</body></html>

  大功告成!运行一下看看得到的结果是不是和图2一样?

  具体工作原理就是先用ASP打开message.txt,然后以*号为分界点得到消息的标题、链接地址及发布时间,接着生成表格显示所取得的信息,然后循环读取message.txt中下一行信息并生成表格。我们可以看到,如果想要更新消息,只需更改文本文件中的内容即可,这样更新虽然还要上传下载略显麻烦,但其容易编写,速度快,占用资源小等等优点还是值得一试的。特别是用于国外的免费空间上(那些空间只支持ASP而不支持数据库)。

    完成了第一个例子,我们再来制作一个计数器。同样的,它也是将数据(当前访问量)记录在txt文件中。先来看一下程序代码:

<%
set rs=server.createobject("scripting.filesystemobject")
file=server.mappath("count.txt")  '建立与count.txt的链接
set cn=rs.opentextfile(file,1)
count=cn.readline  '取得文本文件中的字段(访问量)
if session("in")<>"in" then
session("in")="in"
set cn=rs.createtextfile(file,true)
application.lock
count=cint(count)+1  '将访问量加1得到当前访问量
cn.writeline count  '将当前访问量写入count.txt
application.unlock
end if
%>
<%=count%>  '输出

    接着需要建立一个名为count的文本文件,直接在里面输入一个数字即可,比如“0”。那么这个0就是计数器的起始值,从代码中我们可以知道程序会自动累加该数字,而在使用的过程中我们也可以随意更改这个数字来修改站点的当前访问量(直接修改成1000000?汗)。对了,也要讲这两个文件保存在同一个目录中。

    最后我们再来利用ASP内置的一个组件Ad Rotator编写一个Banner管理系统,来管理站点上的Banner。它可以让将所需要显示的所有banner按照事先设定好的几率随机显示。

    先建立一个名为ar的asp文件,内容如下:
<%
Set ar=Server.CreateObject("MSWC.AdRotator")'创建一个名为ar的AdRotator实例
Response.Write ar.GetAdvertisement("ad.txt")'读取ad.txt中的相关内容
%>
'程序完成,然后再创建adgo.asp,其内容如下:
<%
Response.Redirect(Request.QueryString("URL"))
%>

    这个程序只有一句。首先用Request对象的QueryString来获取网址,再用Response对象的Redirect方法去访问该链接。

    程序作好以后,打开你的“记事本”并输入以下内容:

Redirect adgo.asp<