ASP基础入门第五篇(ASP脚本循环语句)

继上一篇我们学习了脚本语言 VBScript 的函数和条件语句后,今天我们继续来看看VBScript 中的循环语句。

   循环语句的作用就是重复执行程序代码,循环可分为三类:一类在条件变为“假”之前重复执行语句,一类在条件变为“真”之前重复执行语句,另一类按照指定的次数重复执行语句。在VBScript 中可使用下列循环语句:
   Do...Loop: 当(或直到)条件为“真”时循环。
   While...Wend: 当条件为“真”时循环。
   For...Next: 指定循环次数,使用计数器重复运行语句。
   For Each...Next: 对于集合中的每项或数组中的每个元素,重复执行一组语句。    我们先来看看 Do...Loop,它是可以多次(次数不定)运行语句块。当条件为“真”时或条件变为“真”之前,重复执行语句块。请看下例:   

< html>

< head>
< title>DoLoop.asp< /title>< body bgcolor="#FFFFFF">< /head>< p>< /p>
< p> 请将今年到本月为止的每个月份的销售结算记录填写在本页之上。< P>
  < %
  counter = 1
thismonth = month(now())
Do while counter < thismonth + 1
response.write " " & counter & " 月份 : "
response.write "______________________________" & "< BR>< br>"
If counter >13 then
  exit do
  end if
  counter = counter+1
Loop
  %>
  < hr>< /body>< /html>

这段 ASP 程序运用循环语句制作了一张销售结算记录表,将以上代码剪贴至记事簿保存为 DoLoop.asp,并在浏览器中以 HTTP 方式进行浏览,根据当前的月份的不同,你将看到如下图的结果。
<img src='http://arch.pconline.com.cn/pcedu/empolder/wz/asp/10111/pic/2001124_asp_11.gif'>
我们来分析一下此段程序,我们的目的是要根据当前的月份打印一张表格,首先我们建立一个计数器“count”并将其值设为 1,然后我们用函数 month() 和 now() 得到当前的月份,最后建立循环,当 count 的值小于当前月份的值加 1 的时候,即显示月份值及一条横线并将 count 的值加 1,循环语句重复执行直到以上条件为假时退出循环。其中如果 count 大于 13 则用 exit do 立即退出循环。
  Do Loop 语句还可以使用以下语法:

  Do

  [statements][Exit Do]

  [statements]Loop [{While | Until} condition]

   While...Wend 语句是为那些熟悉其用法的用户提供的。但是由于 While...Wend 缺少灵活性,所以建议最好使用 Do...Loop 语句。下面我们来看看 For Next 语句。For...Next 语句用于将语句块运行指定的次数,在循环中使用计数器变量,该变量的值随每一次循环增加或减少。

   下面的示例将过程 MyProc 重复执行 50 次。For 语句指定计数器变量 x 及其起始值与终止值。Next 语句使计数器变量每次加 1。   

Sub DoMyProc50Times()
   Dim x
   For x = 1 To 50
   MyProc
   Next
   End Sub

   关键字 Step 用于指定计数器变量每次增加或减少的值。在下面的示例中,计数器变量 j 每次加 2。循环结束后,total 的值为 2、4、6、8 和 10 的总和。   

Sub TwosTotal()
   Dim j, total
   For j = 2 To 10 Step 2
   total = total + j
   Next
   MsgBox " 总和为 " & total & "。"
   End Sub

   要使计数器变量递减,可将 Step 设为负值。此时计数器变量的终止值必须小于起始值。在下面的示例中,计数器变量 myNum 每次减 2。循环结束后,total 的值为 16、14、12、10、8、6、4 和 2 的总和。  

Sub NewTotal()
   Dim myNum, total
   For myNum = 16 To 2 Step -2
   total = total + myNum
   Next
   MsgBox " 总和为 " & total & "。"
   End Sub

   Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。因为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 If...Then...Else 语句的 True 语句块中使用 Exit For 语句。如果条件为 False,循环将照常运行。

   最后,让我们来看看 For Each...Next 语句 ,For Each...Next 循环与 For...Next 循环类似。For Each...Next 不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句。这在不知道集合中元素的数目时非常有用。它的语法如下:   

For Each element In group
   [statements]
   [Exit For]
   [statements]Next [element]

   如果 group 中有至少一个元素,就会进入 For Each 块执行。一旦进入循环,便首先对 group 中第一个元素执行循环中的所有语句。只要 group 中还有其他的元素,就会对每个元素执行循环中的语句。当 group 中没有其他元素时退出循环,然后从 Next 语句之后的语句继续执行。

   至此,我们已经完成了对脚本语言 VBScript 所有的基本知识的学习,但是仅凭阅读现有的这几篇文章你是无法熟练运用 VBScript 的,你必须通过不断的实践来提高自己的等级。当然,如果你熟悉 C,你也可以选择JavaScript 来作为 ASP 应用程序的脚本语言。不知大家有没有发现 ASP 程序的调试比较困难,因为没有什么现成的工具,在这里我向大家简要介绍一下 Microsoft Script Debugger,我们可以运用它来进行一定量的程序调试工作。

  IIS4.0 所包括的 Microsoft Script Debugger(Script 侦错工具),提供脚本程序的侦错功能。您可以使用 Microsoft Script 侦错工具来进行对使用 VBScript、JScript 编写的脚本程序,以及 Java applets、beans 和 ActiveX 组件的侦错工作。

   有的脚本程序在用户端浏览器执行,有的脚本程序(< % … %> 中的部份)在服务器端执行。Microsoft Script Debugger,可以侦错用户端执行的脚本程序以及服务器端执行脚本程序。    在用户端浏览器执行的脚本程序是在用户端的浏览器当中执行,包括在标准 HTML 代码中的 VBScript、Jscript 部份。在浏览器载入此 HTML 代码或譬如按下按钮触发事件时,将执行此包括脚本程序的 HTML 代码。用户端浏览器执行的脚本程序,主要用于对 HTML 表单输入的基本检查等功能。
   在服务器端执行的脚本程序是在 IIS 服务器端执行,包括在 .asp 程序中。先在 IIS 服务器上执行,执行结果产生标准的 HTML 代码,再传送到用户端浏览器。服务器端执行的脚本程序,主要用于多个网页之间的连结,HTML 表单输入的处理,以及存取服务器上数据库的资料等。

Microsoft Script Debugger 提供以下的除错功能:

   1、设定中断点

   2、逐步追踪脚本程序。

   3、设定书签。

   4、检视呼叫堆叠。

   5、检视和更改变数值。

   6、执行脚本指令。

从下一篇开始,我们将开始学习ASP 的内建对象,大家不要走开呀。

时间: 2015-10-09

隐藏修改文件时间和文件属性的ASP脚本

复制代码 代码如下: <% '隐藏并修改文件的最后修改时间的aspshell '原理:通过FSO可以修改文件的属性,比如设置为只读,隐藏,系统等等:FSO中的attributes属性修改文件属性,1只读,2隐藏,4系统文件 ' 通过shell.application可以给文件重新设置一个最后修改时间 '2009/02/24 write by skyfire response.write "<form method=post>" response.write "

ASP脚本的执行顺序详细说明

首先我们先来了解一下ASP页面执行的流程 1.IIS找到ASP文件,提交给ASP引擎(一般是ASP.DLL)处理. 2.引擎打开这个ASP文件,找出<%和%>之间的内容,当然还有<script runAt="server">和对应的</script>之间的内容,这些内容称为脚本块.只有脚本块里的内容被引擎解析,其他内容不管,作为没有意义的字符插在脚本块之间.有必要说明一下的是,其实被解析的内容还不止这些,<!--#include ***--&g

ASP基础入门第三篇(ASP脚本基础)

下面就先请大家跟我来学习一些ASP 中应用脚本语言(以VBScript 为主)的基础知识. 在开始学习脚本语言之前,你应该理解一些简单的概念 -- 变量.进程.所谓变量是计算机内存中已命名的存储位置,其中包含了数字或字符串等数据,它使用户便于理解脚本操作的名称,为用户提供了一种存储.检索和操作数据的途径.程序是由一个或多个进程组成的,在 VBScript 中,进程就是"指令块",通常意义上的进程,如 Sub,只是为了简单的数据处理. 在 VBScript 中,严格的来讲变量是不用声明的

在不刷新页面的情况下调用远程asp脚本

1.请在sql server 中建一数据库 name:house 在house中运行下列脚本 if exists (select * from sysobjects where id = object_id(N´[dbo].[City]´) and OBJECTPROPERTY(id, N´IsUserTable´) = 1) drop table [dbo].[City] GO if exists (select * from sysobjects where id = object_id(N

用asp脚本实现限制IP访问

cookies跨不了域很麻烦,有了这个脚本就方便多了. <% ip=Request.ServerVariables("REMOTE_ADDR") set Fso=CreateObject("Scripting.FileSystemObject") Set Files=Fso.OpenTextFile(server.mappath("./ip.txt"),1,false) data=files.readall files.close set 

ASP网页模板的应用: 让程序和界面分离,让ASP脚本更清晰,更换界面更容易

为了避免ASP程序和HTML代码混写造成维护困难的情况,本文介绍了一种方法,利用模板来分离程序和页面,使程序设计更加轻松. 在使用ASP制作一个站点的时候,常常会出现一个ASP文件中,程序代码和HTML代码混合的情况.这样子做有许多缺点:     1. 且不说编程时就要对页面布局进行设计和编排,造成代码混乱难懂,不规范:     2. 当需要改变页面外观时,你不仅要改变HTML部份,也需要改变ASP代码,不易维护. 那么,要如何才能避免这些麻烦呢?     答案就是使用模板文件,将ASP代码和H

关于ASP网页无法打开的解决方案

今天遇到一个问题,原来用的好好的asp网页无法打开,同时inetinfo.exe的CPU占用率很高,几乎达到了100%.看了一下系统错误日志,发现一个叫MS DTC的服务启动失败,解决方法如下: 在CMD下执行以下命令: cd %windir%\system32\inetsrv rundll32 wamreg.dll, CreateIISPackage regsvr32 asptxn.dll 在最后regsvr32 asptxn.dll 提示失败,重启机器以后再次运行上面三行命令,MS DTC服

asp.net模板引擎Razor中cacheName的问题分析

本文实例讲述了asp.net模板引擎Razor中cacheName的问题.分享给大家供大家参考.具体如下: 一.为什么使用cacheName 使用cacheName主要是考虑到Razor.Parse()每解析一次都会动态创建一个程序集,如果解析量很大,就会产生很多程序集,大量的程序集调用会造成程序非常慢. 举个例子: 如果编译1000次,编译速度就会很慢. static void Main(string[] args) { string cshtml = File.ReadAllText(@"E

四步完成asp网页设计流量统计

按照以下步骤,逐步操作,你很快就会拥有精美的图形化计数器.  步骤1:在网站的某个目录如count下建立文本文件,如counter.dat    ,用于存放访问量.文件内容仅有一行数字,表示网站初始访问量,一般为0. 步骤2:在相同目录下建立计数器的ASP程序,可命名为mycount.asp,内容如下: <% '自编ASP图形化计数器 V1.1 '用于网页浏览统计,免费使用,自由拷贝! dim vistors '获取计数文件counter.dat的地址 countfile=server.mapp

python+django加载静态网页模板解析

接着前面Django入门使用示例 今天我们来看看Django是如何加载静态html的? 我们首先来看一看什么是静态HTML,什么是动态的HTML?二者有什么区别? 静态HTML指的是使用单纯的HTML或者结合CSS制作的包括图片.文字等的只供用户浏览但不包含任何脚本.不含有任何交互功能的网页! 动态的HTML指的是网页不仅提供给用户浏览,网页本身还有交互功能,存在着在脚本如JAVASCRIPT,并利用某种服务器端语言如PHP等实现如用户注册,用户登录,上传文件,下载文件等功能 接下来,了解下加载

asp.net模板引擎Razor调用外部方法用法实例

本文实例讲述了asp.net模板引擎Razor调用外部方法用法.分享给大家供大家参考.具体如下: 首先使用Razor的步骤:读取cshtml.解析cshtml同时指定cacheName. 而这个步骤是重复的,为了遵循DRY原则,将这段代码封装为一个RazorHelper()方法 public class RazorHelper { public static string ParseRazor(HttpContext context, string csHtmlVirtualPath, obje

用asp实现的代码批量修改程序,fso相关

用asp实现的代码批量修改程序,fso相关 是因工作需要做的一个批量修改代码的小东西,拿出来与大家分享 目前可以处理的文件类型:.asp .inc .htm .html 具体类型可自行修改添加 程序实现的功能:将源目录下的文件批量修改后存到目的目录下 用它稍做修改可以实现很多东西噢! 别的不说了,代码里面都写的很清楚了 <% '// +---------------------------------------------------------------------------+ '//

Java程序去调用并执行shell脚本及问题总结(推荐)

摘要: 该文章来自阿里巴巴技术协会(ATA)精选集 背景 我们在开发过程中,大部分是java开发, 而在文本处理过程中,主要就是脚本进行开发. java开发的特点就是我们可以很早地进行TDDL, METAQ 等等地对接: 而脚本开发的特点就是在进行批处理的时候非常方便. 背景 我们在开发过程中,大部分是java开发, 而在文本处理过程中,主要就是脚本进行开发. java开发的特点就是我们可以很早地进行TDDL, METAQ 等等地对接: 而脚本开发的特点就是在进行批处理的时候非常方便. 前阵子我

把网页中的(电话,qq等数字)生成图片的ASP程序

作用:用ASP程序将页面中的电话号码生成图片格式. 复制代码 代码如下: <% Call Com_CreatValidCode(Request.QueryString("tel")) Public Sub Com_CreatValidCode(pTel) '----------禁止缓存 Response.Expires = 0 Response.AddHeader "Pragma","no-cache" Response.AddHeader

asp 网页视频播放器程序代码(通用代码),支持avi,wmv,asf,mov,rm,ra,ram等

思路是先取得文件的类型,并根据类型选择不同的网页播放器代码..三下五去二.....同时为了代码在以后的复用性,写成了通用的调用函数.方便以后在别的系统中调用.. 现发布源代码如下: 复制代码 代码如下: Sub SelPlay(strUrl,strWidth,StrHeight) Dim Exts,isExt If strUrl <> "" Then isExt = LCase(Mid(strUrl,InStrRev(strUrl, ".")+1)) E