无法理解vbscript中的语法

时间:2013-06-14 11:54:58

标签: vbscript

我知道这是一个非常愚蠢的问题,但任何人都可以帮助我理解这些问题:

dim dmnth = array()
Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1)
dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")"

提前感谢。

3 个答案:

答案 0 :(得分:2)

  • dim dmnth = array()

    这是一个无效的陈述。在VBScript中,您无法声明变量并使用单个语句中的值对其进行初始化。它应该是

    Dim dmnth
    dmnth = Array()
    

    或更短

    Dim dmnth : dmnth = Array()
    

    声明变量dmnth并使用空数组初始化变量。但是,这只有在您想要创建一个空的1维数组时才有用,该数组将在保留其值的同时动态增长(也可以通过ReDim arr(-1)实现)。由于您的数组有3个维度,因此这种初始化毫无意义。下面的命令足以进行声明和初始化。

  • Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1)

    如果已经声明dmnth,则会将变量的大小调整为3维数组,其中1 st 维度的上限为Rs_emp_count + 1 {{1}在2 nd 维度中,以及3 rd 维度中的Rs_proj_count + 1。数组的任何内容都将被丢弃。如果尚未声明total_days + 1,则将其声明并初始化为具有给定上限的三维数组。

  • dmnth

    这会将dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")"pname构建的字符串放入位置pidemp_cntprj_cnt的数组字段中。

答案 1 :(得分:1)

dim dmnth = array();这会将dmth设置为函数array()的返回值;无论那是什么。这是您计划中不必要的一步;除非array()做一些有用的事情,除了返回一个值。

Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1);这会破坏dmth的内容;将dmnth替换为具有尺寸的3D数组,分别为每个维度Rs_emp_count + 1Rs_proj_count + 1total_days + 1。所有元素都被清除。

dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")"pname & " (" & pid & ")"分配给数组的(emp_cnt, prj_cnt, 0)元素。请记住,VBScript中的数组是基于零的;即(0,0,0)是有效元素。

答案 2 :(得分:0)

首先将dmnth声明为数组。 然后将其重新声明为三维数组。 然后将Emp_cnt,Prj_Cnt,第0个条目设置为pname& " ("& pid&")"