欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

利用ASP的文件操作实现用户管理

程序员文章站 2023-10-28 19:52:40
    简单、好用、开发效率高等等是asp的优点,但是其操作方面如文件操作等则 是比较微弱的。要想实现这方面的功能,只有采取调用的办法。filesy...
    简单、好用、开发效率高等等是asp的优点,但是其操作方面如文件操作等则 是比较微弱的。要想实现这方面的功能,只有采取调用的办法。
filesystemobject对象就是一个例子。asp安装后,该对象就在系统中注册了。
不过其功能也非常一般,只能操作文本类型的文件。不过也可以满足我们的一些
需要了。前几天我的一个同事的一个朋友在网上申请了一个支持asp的空间,想
实现诸如用户注册、信息修改、用户注销等功能,又不想用来实现,因为
要进行一大堆的设置。其实利用filesystemobject操作文本文件就可以实现。
    实现的思路是:为每项信息建立一个文本文件,如姓名、性别、年龄等。所
有用户的同一个信息项都保存在相对应的文件中。如每个用户的姓名信息都保存
在姓名文件中。并且每个用户的信息都以特殊的标志开始和结束,读取信息时就
根据这些标志进行定位。例如开始标志用“`用户名`” ,结束标志用“`e`”。
只要不是常用的字符串,就可以作为定位的标志。另外,还有两个文件是必不可
少的:那就是用户名、密码文件。判断用户是否存在、用户登陆等就是利用这两
个文件实现的。下面介绍的就是本人的具体实现代码。
    在程序编写前我先搞了搞了一个公共的函数单元fun.inc,这里面是一些比较
通用的函数,供其它的asp文件包含并调用。
    首先是些用户信息的函数,包括用户名、文件名、用户信息三个参数,都是
字符串类型,其中用户信息还可以是多行。代码如下:

sub writeuser(username,filename,userinfo)
  dim fs, f
  set fs = createobject("scripting.filesystemobject")
  if fs.fileexists(filename) = false then
    fs.createtextfile (filename)
  end if
  以添加方式打开文件
  set f = fs.opentextfile(filename, 8)
  用户信息开始标志
  f.writeline ("`" & username & "`")
  f.writeline (userinfo)
  用户信息结束标志
  f.writeline ("`e`")
  
  f.close
  set f = nothing
  set fs = nothing
end sub

    读用户信息的函数只需要两个参数:用户名和文件名,用户的信息作为函数
的返回值,实现的思路就是寻找开始、结束标志,并把它们之间的信息返回。代
码如下:

function readuser(username,filename)
  dim i
  dim s
  dim ret
  dim fs, f
  
  set fs = createobject("scripting.filesystemobject")
  if fs.fileexists(filename)=false then
    set fs=nothing
    readuser=""
    exit function
  end if 
  以只读方式打开文件
  set f = fs.opentextfile(filename, 1)
  
  do while f.atendofstream <> true
    s = f.readline
    if s = "`" & username & "`" then
      s = f.readline
      ret=""
      do while s <> "`e`"
        if ret="" then