ASP中FSO方法与属性
发布时间:2023-09-19 10:27:02 所属栏目:Asp教程 来源:
导读:假设你想创建一个简单的留言簿,你可以建立一个数据库,在其中存储用户的信息。然而,如果并不需要数据库的强大功能,使用FSO来存储信息将节省你的时间和金钱。并且,一些ISP也许限制了web上的数据库应用。
假设你
假设你
假设你想创建一个简单的留言簿,你可以建立一个数据库,在其中存储用户的信息。然而,如果并不需要数据库的强大功能,使用FSO来存储信息将节省你的时间和金钱。并且,一些ISP也许限制了web上的数据库应用。 假设你在一个表单中收集了一些用户信息,这里是一个简单表单HTML代码: 以下为引用的内容: < html> < body> < form action="formhandler.asp" method="post"> < input type="text" size="10" name="username"> < input type="text" size="10" name="homepage"> < input type="text" size="10" name="Email"> < /form> < /body> < /html> 再看看formhandler.asp中处理表单的代码: 以下为引用的内容: < % ' Get form info strName = Request.Form("username") strHomePage = Request.Form("homepage") strEmail = Request.Form("Email") ' create the fso object Set fso = Server.CreateObject("Scripting.FileSystemObject") 迄今为止,还没有新鲜的东西,无非是获取表单域的值并且赋值到变量。下面出现了有趣的部分 - 写文件: 以下为引用的内容: path = "c: emp est.txt" ForReading = 1, ForWriting = 2, ForAppending = 3 ' open the file set file = fso.opentextfile(path, ForAppending, TRUE) ' write the info to the file file.write(strName) & VBcrlf file.write(strHomePage) & VBcrlf file.write(strEmail) & VBcrlf ' close and clean up file.close set file = nothing set fso = nothing OpenTextFile方法返回一个TextStream对象,它是FSO模型中的另外一个对象。TextStream对象揭示了操作文件内容的方法,比如写、读一行、跳过一行。VB常量VBcrlf产生一个换行符。 在OpentextFile的命令参数中定义了TRUE,这就告诉了系统,如果文件不存在,就创建它。如果文件不存在,并且没有定义TRUE参数,就会出错。 以下为引用的内容: User's name User's home page User's email 当然,这些单词可以被输入在表单中的任何内容所替换。 现在已经有了一些用户信息保存在文件中,就像一个简单的数据库。假设有一个用户想了解所有的访问者,就要从登记的信息中分离出相关部分,因为没有象数据库一样拥有结构化的列。 我们知道,在所创建的文件中,第1行是用户名,第2行是他们的主页,第3行是他们的电子邮件地址。随后登记的用户也是按照这样的结构存储他们的信息,所以每3行将包含一个用户的登记信息。知道了这些,就可以编写下面的代码来显示信息: 以下为引用的内容: < % ' create the fso object set fso = Server.Createobject("Scripting.FileSystemObject") path = "c: emp est.txt" ' open the file set file = fso.opentextfile(path, 1) < -- For reading 接着,分析每一行,并且格式化数据: 以下为引用的内容: do until file.AtEndOfStream Response.write("Name: " & file.ReadLine & " ") Response.write("Home Page: " & file.ReadLine & " ") Response.write("Email: " & file.ReadLine & "< p>") loop ' close and clean up file.close set file = nothing set fso = nothing %> 这里仅仅做了一个非常简单的输出,但是你可以根据情况包含表格或者DHTML表单信息。 如果已经正确地建立并写入了文件,上面的小小循环将合适地列出数据库中的每一个人的信息。ReadLine方法读取1行内容,直到遇到换行符,随后的ReadLine调用将读取下一行。AtEndOfStream是TextStream对象的属性,它告诉我们何时遇到文件的尾部。 假设由于某种原因,我们没有正确地形成文件,如果一个用户只有2行信息而不是3行,那么就会产生一些错误。我们这里的循环取回文件中的下3行信息,如果没有3行多的信息,就将出现如下的错误信息: Server object error 'ASP 0177 : 800a003e' 所以,一定要添加一些错误处理代码,以防文件中插入了多余的行或者少了必要的行信息。 上面讨论了基本知识,然后说说权限许可的问题。FSO以创建它的用户帐户权限运行,换言之,如果有人从Internet上访问你的页面,那么这个internet帐户就创建FSO。如果以administrator的身份登录计算机,并且登录页面,那么administrator帐户就创建了FSO。这是非常重要的,因为一定的帐户拥有一定的权限,并且FSO需要一些权限从而能完整的执行功能。 还能用FSO做什么? 在FSO中还有许多很棒的功能,但许多人没有意识到。这些功能常常是在你感到做某些事情很难后才发现的,这时你经常要感叹到:要是我早知道这个方法就好了! 下面列举一下这些不常用但是却非常酷的功能: 很少被了解的FSO功能 GetSpecialFolder Method 返回特定的Windows文件夹的路径: Windows安装目录;Windows系统目录;Windows临时目录 FSO.GetSpecialFolder([0, 1, or 2]) GetTempName Method 返回一个随机产生的文件或者目录名字,用于需要存储临时数据时GetAbsolutePathName Method 返回文件夹的绝对路径(类似于Server.MapPath)。 比如,FSO.GetAbsolutePathName("region") 将返回类似于下面的结果:"c:mydocsmyfolder egion" GetExtensionName Method 返回路径中最后部分的扩展名(比如:FSO.GetExtensionName("c:docs est.txt") 将返回txt) GetBaseName and GetParentFolder Methods 返回路径中最后部分的父文件夹 (比如:FSO.GetParentFolder ("c:docsmydocs") 将返回'docs') Drives Property 返回所有本地可用驱动器的集合,用于建立资源浏览器样的用户接口。 使用上面的功能时,最好建立好出错处理的代码。因为如果需要的参数不存在,将会产生麻烦的信息。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |