paulfrank 发表于 2011-8-10 12:13:39

RhinoScript语法(入门基础1)

VBScript 数据类型
什么是 VBScript 数据类型?
      VBScript 只有一种数据类型,称为 Variant。Variant 是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息。因为 Variant 是 VBScript 中唯一的数据
类型,所以它也是 VBScript 中所有函数的返回值的数据类型。
      最简单的 Variant 可以包含数字或字符串信息。Variant 用于数字上下文中时作为数字处理,用于字符串上下文中时作为字符串处理。这就是说,如果使用看起来象是数
字的数据,则 VBScript 会假定其为数字并以适用于数字的方式处理。与此类似,如果使用的数据只可能是字符串,则 VBScript 将按字符串处理。当然,也可以将数字包含
在引号 (" ") 中使其成为字符串。
Variant 子类型
      
      除简单数字或字符串以外,Variant 可以进一步区分数值信息的特定含义。例如使用数值信息表示日期或时间。此类数据在与其他日期或时间数据一起使用时,结果也总
是表示为日期或时间。当然,从 Boolean 值到浮点数,数值信息是多种多样的。Variant 包含的数值信息类型称为子类型。大多数情况下,可将所需的数据放进 Variant 中
,而 Variant 也会按照最适用于其包含的数据的方式进行操作。
   
   下表显示 Variant 包含的数据子类型:
   

子类型 描述
   
Empty          未初始化的 Variant。对于数值变量,值为 0;对于字符串变量,值为零长度字符串 ("")。
   
Null             不包含任何有效数据的 Variant。 Boolean 包含 True 或 False。 Byte 包含 0 到 255 之间的整数。

Integer      包含 -32,768 到 32,767 之间的整数。 Currency -922,337,203,685,477.5808 到
922,337,203,685,477.5807。
   
Long         包含 -2,147,483,648 到 2,147,483,647 之间的整数。
   
Single         包含单精度浮点数,负数范围从 -3.402823E38 到 -1.401298E-45,正数范围从 1.401298E-45 到 3.402823E38。

Double       包含双精度浮点数,负数范围从 -1.79769313486232E308 到 -4.94065645841247E-324,正数范围从
4.94065645841247E-324 到

1.79769313486232E308      

Date (Time) 包含表示日期的数字,日期范围从公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日。
   
String          包含变长字符串,最大长度可为 20 亿个字符。
   
Object         包含对象。

   
Error            包含错误号。

VB script变量

什么是变量?
      
变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储 Script 运行时可更改的程序信息。例如,可以创建一个名为 ClickCount
的变量来存储用户

单击 Web 页面上某个对象的次数。使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。在 VBScript
中只有一个基本

数据类型,即 Variant,因此所有变量的数据类型都是 Variant。
      
声明变量
       声明变量的一种方式是使用 Dim 语句、Public 语句和
Private 语句在 Script 中显式声明变量。例如:
       Dim
DegreesFahrenheit
       声明多个变量时,使用逗号分隔变量。例如:

       Dim Top, Bottom, Left,
Right
       另一种方式是通过直接在 Script
中使用变量名这一简单方式隐式声明变量。这通常不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行 Script 时出现意外

的结果。因此,最好使用 Option Explicit 语句显式声明所有变量,并将其作为 Script 的第一条语句。

命名规则
      变量命名必须遵循 VBScript
的标准命名规则。
      变量命名必须遵循:

         * 第一个字符必须是字母。
         * 不能包含嵌入的句点。
         * 长度不能超过 255 个字符。
         * 在被声明的作用域内必须唯一。

变量的作用域与存活期
      
变量的作用域由声明它的位置决定。如果在过程中声明变量,则只有该过程中的代码可以访问或更改变量值,此时变量具有局部作用域并被称为过程级变量。如果在过

程之外声明变量,则该变量可以被 Script 中所有过程所识别,称为 Script 级变量,具有 Script
级作用域。
      变量存在的时间称为存活期。Script 级变量的存活期从被声明的一刻起,直到
Script 运行结束。对于过程级变量,其存活期仅是该过程运行的时间,该过程结束后,变
量随之消失。在执行过程时,局部变量是理想的临时存储空间。可以在不同过程中使用同名的局部变量,这是因为每个局部变量只被声明它的过程识别。

给变量赋值
      
创建如下形式的表达式给变量赋值:变量在表达式左边,要赋的值在表达式右边。例如:
      B = 200

标量变量和数组变量
      
多数情况下,只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量。有时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,

称为数组变量。数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时变量名后面带有括号 ( )。下例声明了一个包含 11
个元素的一维数组:
      Dim A(10)
      虽然括号中显示的数字是 10,但由于在 VBScript 中所有数组都是基于 0
的,所以这个数组实际上包含 11 个元素。在基于 0 的数组中,数组元素的数目总是括号中显

示的数目加 1。这种数组被称为固定大小的数组。
      
在数组中使用索引为数组的每个元素赋值。从 0 到 10,将数据赋给数组的元素,如下所示:
      
      A(0) = 256
      A(1) = 324
      A(2) = 100
      ...
      A(10) = 55

      
与此类似,使用索引可以检索到所需的数组元素的数据。例如:
      
      ...
      SomeVariable = A(8)
      ...
      
数组并不仅限于一维。数组的维数最大可以为 60(尽管大多数人不能理解超过 3 或 4
的维数)。声明多维数组时用逗号分隔括号中每个表示数组大小的数字。在下例中

,MyTable 变量是一个有 6 行和 11 列的二维数组:
      Dim MyTable(5,10)
      
在二维数组中,括号中第一个数字表示行的数目,第二个数字表示列的数目。
      
也可以声明动态数组,即在运行 Script 时大小发生变化的数组。对数组的最初声明使用 Dim 语句或 ReDim
语句。但是对于动态数组,括号中不包含任何数字。例如:
      Dim MyArray()
      ReDim AnotherArray()
      要使用动态数组,必须随后使用 ReDim
确定维数和每一维的大小。在下例中,ReDim 将动态数组的初始大小设置为 25,而后面的 ReDim 语句将数组的大小重新调整

为 30,同时使用 Preserve 关键字在重新调整大小时保留数组的内容。
      
      ReDim MyArray(25)
      ...
      ReDim Preserve MyArray(30)
      
重新调整动态数组大小的次数是没有任何限制的,但是应注意:将数组的大小调小时,将会丢失被删除元素的数据。

VBScript常数

      什么是常数?

      常数是具有一定含义的名称,用于代替数字或字符串,其值从不改变。VBScript
定义了许多固有常数。详细信息,请参阅 VBScript 语言参考。
      
创建常数
      您可以使用 Const 语句在 VBScript 中创建用户自定义常数。使用
Const 语句可以创建名称具有一定含义的字符串型或数值型常数,并给它们赋原义值。例如:

      Const MyString =
"这是一个字符串。"
      Const MyAge = 49

      请注意字符串文字包含在两个引号 (" ")
之间。这是区分字符串型常数和数值型常数的最明显的方法。日期文字和时间文字包含在两个井号 (#) 之间。例如:

      Const CutoffDate = #6-1-97#

      最好采用一个命名方案以区分常数和变量。这样可以避免在运行 Script
时对常数重新赋值。例如,可以使用“vb”或“con”作常数名的前缀,或将常数名的所有字母

大写。将常数和变量区分开可以在开发复杂的 Script 时避免混乱。

使用条件语句
      
      
控制程序执行

      使用条件语句和循环语句可以控制 Script
的流程。使用条件语句可以编写进行判断和重复操作的 VBScript 代码。在 VBScript
中可使用以下条件语句:
      * If...Then...Else
语句
      * Select Case 语句

      使用 If...Then...Else 进行判断

      If...Then...Else 语句用于计算条件是否为 True 或
False,并且根据计算结果指定要运行的语句。通常,条件是使用比较运算符对值或变量进行比较的表达式。有关比较

运算符的详细信息,请参阅比较运算符。

      If...Then...Else 语句可以按照需要进行嵌套。

      条件为 True 时运行语句 要在条件为 True 时运行单行语句,可使用
If...Then...Else 语句的单行语法。下例示范了单行语法。请注意此例省略了关键字
Else。
      Sub FixDate()

      Dim myDate
      
myDate = #2/13/95#
      If myDate < Now Then
myDate = Now
      End Sub

      要运行多行代码,必须使用多行(或块)语法。多行(或块)语法包含 End If
语句,如下所示:
      Sub AlertUser(value)

      If value = 0 Then

      AlertLabel.ForeColor = vbRed

      AlertLabel.Font.Bold = True

      AlertLabel.Font.Italic = True

      End If
      End
Sub
      条件为 True 和 False 时分别运行某些语句

      可以使用 If...Then...Else 语句定义两个可执行语句块:条件为 True
时运行某一语句块,条件为 False 时运行另一语句块。
      Sub
AlertUser(value)
      If value = 0 Then

      AlertLabel.ForeColor = vbRed

      AlertLabel.Font.Bold = True

      AlertLabel.Font.Italic = True

      Else
      
      AlertLabel.Forecolor = vbBlack
      
      AlertLabel.Font.Bold = False
      
      AlertLabel.Font.Italic = False
      End If

      End Sub

对多个条件进行判断

      If...Then...Else 语句的一种变形允许您从多个条件中选择,即添加 ElseIf
子句以扩充 If...Then...Else
语句的功能,使您可以控制基于多种可能的程序流程。例如:      

      Sub ReportValue(value)

      If value = 0 Then

      MsgBox value

      ElseIf value = 1 Then

      MsgBox value

      ElseIf value = 2 then

      Msgbox value

      Else
      
Msgbox "数值超出范围!"
      End If

      可以添加任意多个 ElseIf 子句以提供多种选择。使用多个 ElseIf
子句经常会变得很累赘。在多个条件中进行选择的更好方法是使用 Select Case 语句。

      Select Case 结构提供了 If...Then...ElseIf
结构的一个变通形式,可以从多个语句块中选择执行其中的一个。Select Case 语句提供的功能与 If...Then...Else 语句类似,

但是可以使代码更加简练易读。
      Select Case
结构在其开始处使用一个只计算一次的简单测试表达式。表达式的结果将与结构中每个 Case 的值比较。如果匹配,则执行与该 Case 关联的语句块:

      Select Case
Document.Form1.CardType.Options(SelectedIndex).Text

      Case "MasterCard"

      DisplayMCLogo

      ValidateMCAccount

      Case "Visa"

      DisplayVisaLogo

      
ValidateVisaAccount
      Case "American Express"

      DisplayAMEXCOLogo

      ValidateAMEXCOAccount

      Case Else
      
DisplayUnknownImage
      
PromptAgain
      End Select

      请注意 Select Case 结构只计算开始处的一个表达式(只计算一次),而
If...Then...ElseIf 结构计算每个 ElseIf 语句的表达式,这些表达式可以各不相同。仅当每个

ElseIf 语句计算的表达式都相同时,才可以使用 Select Case 结构代替 If...Then...ElseIf 结构。

Ashur 发表于 2011-8-10 13:19:32

这个要顶~~~

hida 发表于 2012-3-24 20:26:25

学习!!!!!

guishengda 发表于 2011-12-2 22:55:24

看看。。。。。。。。。。。。。。

h5ehj99 发表于 2012-4-20 10:28:32

这种事避免不了的...英雄合击

kzsel 发表于 2012-5-12 11:54:51

這...。。。什麽情況!!!!!

dengz 发表于 2012-10-13 16:05:48

激动人心,无法言表!

iapple 发表于 2012-12-3 22:29:12

根本看不懂是什么意思唉

十日十月 发表于 2016-9-8 10:40:42

这个好棒!!!

quiyu 发表于 2017-3-18 22:32:57

:)
页: [1]
查看完整版本: RhinoScript语法(入门基础1)