仓酷云

标题: ASP教程之FSO组件之文件操纵(中) [打印本页]

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

Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来;
作者: 飘灵儿    时间: 2015-1-19 11:44
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
作者: 精灵巫婆    时间: 2015-1-24 13:39
那么,ASP.Net有哪些改进呢?
作者: 山那边是海    时间: 2015-2-1 16:11
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
作者: 若天明    时间: 2015-2-7 08:14
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
作者: 仓酷云    时间: 2015-2-21 06:01
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
作者: 变相怪杰    时间: 2015-3-6 19:54
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
作者: 深爱那片海    时间: 2015-3-13 07:09
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
作者: admin    时间: 2015-3-20 16:23
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2