|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。fso 在ASP中,FSO的意思是File System Object,即文件体系对象。
咱们将要把持的盘算机文件体系,在这里是指位于web办事器之上。所以,确认你对此具有适合的权限。幻想情形下,你可以在本人的机械上创立一个web办事器,如许就可以便利地停止测试。假如运转于Windows平台,请试一试微软公司的收费团体Web办事器PWS。
FSO 模子对象
Drive Object:驱动器对象 供存取磁盘或收集驱动器
FileSystemObject Object:文件体系对象 供存取盘算机的文件体系
Folder Object:文件夹对象 供存取文件夹的一切属性
TextStream Object:文本流对象 供存取文件内容
你可使用下面的对象做盘算机上的任何工作,也包含损坏举动 ;-( 所以,请当心利用FSO。在web情况中,存储信息长短常主要的,好比用户信息,日记文件,等等。FSO供应了一个壮大且复杂的办法高效力地保留数据。在这篇文章外面,侧重会商FileSystemObject和TextStream对象。
FSO由微软公司供应撑持,关于非Windows体系,也许不克不及再利用ASP。
怎样利用FSO?
为了利用FSO来履行一切的任务,起首要创立对象,代码就象上面如许:
< % Set fso = Server.CreateObject("Scripting.FileSystemObject")
% >
如许就创立了FSO而且付与变量fso,接着就能够利用熟习的object.method语法来履行文件体系的操作〔检查Visual Basic文档,获得更多的关于对象和对象导游编程的常识〕。在这里,咱们可使用fso.method 或 fso.property,这些将鄙人面的例子中看到。
FSO模子位于由微软供应的剧本运转工夫DLL文件中,它是scrrun.dll。你可以在任何使用法式中援用这个DLL文件,好比MS Access,Word。 就是说,并不是仅仅限制在ASP中使用它。
这里有一个扼要的FSO办法列表:
FSO办法
CopyFile 拷贝一个或多个文件到新途径
CreateTextFile 创立文件而且前往一个TextStream对象
DeleteFile 删除一个文件
OpenTextFile 翻开文件而且前往TextStream对象,以便读取或追加
假如想懂得完全的FSO办法与属性,请查阅微软MSDN。上面来看几个例子。
假定你想创立一个复杂的留言簿,你可以创立一个数据库,在个中存储用户的信息。但是,假如其实不需求数据库的壮大功效,利用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参数,就会失足。
如今转到目次c: emp,翻开test.txt,你可以看到以下的信息:
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需求一些权限从而能完全的履行功效。
internet帐户(IUSER_MachineName,MachineName是办事器的名字)普通只具有读权限,这意味着用户将不克不及写入留言簿文件。但是,有几个选择可以绕过这个成绩。
起首,也是很坚苦的,是请求用户在填写留言簿前登录到办事器。但是,留言簿的要点是从匿名用户处搜集信息,假如请求用户登录,就必需要晓得他们是谁。因而,跳过这个选择,看下一个。
第2个办法是创立一个目次或文件,IUSER_MachineName用户对此有写权限。如许做能够开放了一些潜伏的平安破绽,由于任何晓得准确目次并具有必定web技能的人就可以在办事器上填充内容。这是一个很严重的忌讳。所以你必需确认在埋没的场合保留了这些可写目次的信息,而且尽量地将这些目次设置在web目次布局之外(好比在Windows下,这是一个不在inetpub目次下的一个目次)。
你或许想:好,如今我晓得若何写入文件了。但能做到更多一些吗?上面来试一试为web站点创立一个搜刮功效。
创立搜刮引擎的关头是递归。次要地,编写一段代码搜刮目次下的文件,然后对一切的目次轮回履行一样的代码。由于不克不及肯定总共有几何个子目次,所以必需一遍又一遍地履行搜刮代码,直到停止。递归挪用十分好!
上面来创立搜刮页面。假定已创立了一个HTML表单,用户在个中输出一个搜刮字符串。
Dim objFolder
Dim strSearchText
Dim objFSO
strSearchText = Request.Form("SearchText") < -- The search string
</p> 对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。ASP的收费是根据软件的类型、客制化程度、用户数量、服务期限来定的,对客户来说这笔费用是可以预见的。方便于客户应用软件的升级。 |
|