ASP教程之FSO组件之文件操纵(中)
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。学会了FSO提取文件值,也学会了将信息输出到文件中,那上面就再来使用使用下。<P> 不晓得你有无如许的习气:看到一个文件,不盲目的右键选择用记事本翻开。呵呵,几近没有哪一个文件是不成以的。以是如今,能够默许一切文件都是文本,只是后缀名分歧罢了;那末也就是说,如今能够提取任一文件的内容信息。OK,就来设想一下:<P> 1,提取一个文件的路径(接纳file按钮举行查找定位)2,将该路径文件翻开,并读取一切行
3,显现读取的信息<P> 1、viewcode.asp<P>
<%
FunctionShowCode(filename)
Setfso=Server.CreateObject("Scripting.FileSystemObject")
Setcnrs=fso.OpenTextFile(filename,1)
WhileNotcnrs.AtEndOfStream
rsline=cnrs.ReadLine
rsline=server.HTMLEncode(rsline)
Response.Write(rsline&"<br>")
Wend
endFunction
%><P><formaction="viewcode.asp"method="post">
输出文件名<inputtype="file"name="filename">
<inputtype="submit"value="检察源程序">
</form><%
file=request.form("filename")
response.write(file&"源程序以下<hr>")
Iftrim(file)""then
CallShowCode(file)
EndIf
%>
<P> 以上程序调试时,能够选择html,asp页面,也能够翻开任一使用程序等。<P> 界说的ShowCode函数,次要感化是翻开、读取并显现文件中一切信息内容。注重增加了server.HTMLEncode(rsline),针对含有尺度HTML代码的文件。<P> 显现文件中一切行即用一前提轮回举行遍历显现了。<P>
WhileNotcnrs.AtEndOfStream
...
Wend
<P> 接着,上面的这个例题详细就触及open办法的成绩了,还记得?一般情形之下翻开文件是接纳fso.OpenTextFile("c: estfile.txt",1),参数1的感化是:以只读形式翻开文件。不克不及对此文件举行写操纵。假如如今已存在一文件,必要举行追加写进,则该怎样办呢?复杂,参数为8便可。<P> 这有甚么用呢?呵呵,亚玛逊的收集故事接龙就是云云:能接龙就必要起首要显现原有故事,然后本人增加故事写进文件。这个中的写进文件最考究的就是追加写进了。以是上面就能够完成。<P> 2、story.asp<P>
<%
Ifnotrequest.Form("NextLine")=""then
Setfso=Server.CreateObject("Scripting.FileSystemobject")
textfile1=Server.MapPath("story.txt")
setcnrs=fso.OpenTextFile(textfile1,8)
cnrs.WriteLine(Request.Form("NextLine"))
cnrs.Close
endif
%>
故事以下:
<%
Setfso=Server.CreateObject("Scripting.FileSystemObject")
textfile1=Server.MapPath("story.txt")
setcnrs=fso.OpenTextFile(textfile1,1)
whilenotcnrs.AtEndOfStream
Response.Write""&cnrs.ReadLine
wend
cnrs.close
%>
<hr>
<formmethod="post"action="story.asp">
请输出这个故事的新行:<inputname="NextLine"type="text"size="70">
<inputtype="submit"value="提交">
</form>
<P> 全部就是一很复杂的读失信息和到场信息的夹杂使用,信任有了后面的基本看懂应当不成成绩。固然还短少个story.txt文件,内里写好故事开首就能够了。<P> 调试<P> 再上面,持续来,该偏重点次要就是实习一些函数的利用技能了。<P> 1,instr函数:前往某字符串在另外一字符串中第一次呈现的地位。
好比如今查找字母“A”在字符串“A110B121C119D1861”中第一次呈现的地位,则能够<P>
<scriptlanguage=vbs>
my_string="A110B121C119D1861"
a_num=instr(my_string,"A")
alert(a_num)
</script>
<P> 一样字母“B”的地位也就可以断定。如今就来最关头的:提早字母“A”和“B”两头的值“110”。
还记得mid函数吗?mid函数的次要感化是:从字符串中前往指定命目标字符。
好比如今的“110”则应当是从字符串的第2位获得3个单元的值。<P>
<scriptlanguage=vbs>
my_string="A110B121C119D1861"
a_value=mid(my_string,2,3)
alert(a_value)
</script>
<P> 但假想一下:假如不是“110”,而是“1100”,那是否是要提取4位……如许就显出程序的不敷完善。
以是持续思索:所提取的值,永久是在字母“A”前面的,且值也永久是在字母“A”和“B”之间的,那末只需分离提掏出“A”、“B”的地位,则两头数值的肇端位应是字母“A”位+1,两头数值的长度应是字母“B”位-字母“A”位-1
那末如今就能够让程序完善起来:<P>
<scriptlanguage=vbs>
my_string="A110B121C119D1861"
a_num=instr(my_string,"A")
b_num=instr(my_string,"B")
a_value=mid(my_string,a_num+1,b_num-a_num-1)
alert(a_value)
</script>
<P> OK,那末如今你也就完整能够把字母“B”、“C”、“D”前面的值逐一提取了。
固然必要注重的就是“D”前面有几位怎样取呢?接纳字符串总长度-字母D地点地位数就能够了。<P>
<scriptlanguage=vbs>
my_string="A110B121C119D1861"
a_num=instr(my_string,"A")
b_num=instr(my_string,"B")
c_num=instr(my_string,"C")
d_num=instr(my_string,"D")
total_num=len(my_string)
a_value=mid(my_string,a_num+1,b_num-a_num-1)
b_value=mid(my_string,b_num+1,c_num-b_num-1)
c_value=mid(my_string,c_num+1,d_num-c_num-1)
d_value=mid(my_string,d_num+1,total_num-d_num)
alert(a_value)
alert(b_value)
alert(c_value)
alert(d_value)
</script>
<P> 用到如今,你大概的确学到了很多,但大概会提出疑问:这个放在FSO文件操纵里有甚么感化呢?
那上面才是我们的正题:用FSO举行复杂的文本投票。<P> 投票页面主要的就是显现各种项目标投票数,并响应赋于某个变量。然后判别本次投票的选相,绝对应地将投票数值加1,终了后再将一切值持续写进文本。<P> 1,一个HTML表单页website.html
以做投票点击的平台。<P>用到如今,你大概的确学到了很多,但大概会提出疑问:这个放在FSO文件操纵里有甚么感化呢?
那上面才是我们的正题:用FSO举行复杂的文本投票。<P>
<formaction="result.asp"method="post">
<inputtype="radio"name="website"value="A"checked>cnbruce.com<br>
<inputtype="radio"name="website"value="B">blueidea.com<br>
<inputtype="radio"name="website"value="C">it365cn.com<br>
<inputtype="radio"name="website"value="D">5d.cn<br>
<inputtype="submit">
<inputtype="reset">
<P> 2,承受表单页值的result.asp<P>
<%
whichfile=server.mappath("site.txt")
setfso=createobject("Scripting.FileSystemObject")
setthisfile=fso.opentextfile(whichfile)
my_string=thisfile.readline<P>a_num=instr(my_string,"A")
b_num=instr(my_string,"B")
c_num=instr(my_string,"C")
d_num=instr(my_string,"D")
total_num=len(my_string)<P>a_value=mid(my_string,a_num+1,b_num-a_num-1)
b_value=mid(my_string,b_num+1,c_num-b_num-1)
c_value=mid(my_string,c_num+1,d_num-c_num-1)
d_value=mid(my_string,d_num+1,total_num-d_num)<P>selectcaserequest.form("website")
case"A":a_value=a_value+1
case"B":b_value=b_value+1
case"C":c_value=c_value+1
case"D":d_value=d_value+1
endselectmynew_string="A"&cstr(a_value)&"B"&cstr(b_value)&"C"&cstr(c_value)&"D"&cstr(d_value)
setnewfile=fso.createtextfile(whichfile)
newfile.writeLine(mynew_string)
newfile.close
setfso=nothing
%>
以后投票:<br>
cnbruce.com:<%=a_value%><br>
blueidea.com:<%=b_value%><br>
it356cn.com:<%=c_value%><br>
5d.cn:<%=d_value%><br>
<ahref="website.html">前往持续</a>
<P> 有了下面函数的基本,看这个应当不是很难的。<P> 3,最初不要忘了的记数文件site.txt<P> 格局:A1B1C1D1<P> 调试<P> OK,三个文件就能够胜任一个很复杂的投票体系了,假如要增强,必要细化的则分离之前的常识吧,好比投过一次后设置session大概cookies,当再次投票时分判别假如session大概cookies存在则不同意,也就是复杂的投票防作假手腕了……固然更多的仍是要本人往想往理论了。
Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来; 跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组 那么,ASP.Net有哪些改进呢? 封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。 他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。 ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。 封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
页:
[1]