VBScript数组问题

时间:2019-03-06 16:09:39

标签: arrays dynamic vbscript

我正在尝试创建一个动态数组,以供以后使用以获取多个数字值的中值。我有以下内容:

Dim DaysArray(), i, val1, val2

Sub BuildArray
    i = 0
    ...

    While Not recordset.EOF
        ReDim Preserve DaysArray(i)
        DaysArray(i) = recordset(value)
        i = i + 1
    Wend

    ...
End Sub

Sub ShowArrayValue
    ...

    Array.Sort(DaysArray)
    If DaysArray.Length Mod 2 <> 0 Then 
        Response.Write DaysArray(DaysArray.GetUpperBound(0)\2) 
    Else 
        val1 = DaysArray(DaysArray.Length\2)
        val2 = DaysArray((DaysArray.Length\2) - 1)
        Response.Write (val1 + val2)\2 
    End If
    ...
End Sub

但是,在循环的第一次迭代中,我在Array.Sort(DaysArray)行上看到“ Object required:Array”吗?

1 个答案:

答案 0 :(得分:0)

您需要使用ReDim Statement,例如如下:

data = s.recv(64)
new = hex(data)
  

ReDim声明

     

声明动态数组变量,并分配或重新分配存储   过程级别的空间。

     

语法

Dim DaysArray(), i, val1, val2

Sub BuildArray
i = 0
'...
While Not recordset.EOF
    ReDim Preserve DaysArray(i)
    DaysArray(i) = recordset.value
    recordset.MoveNext
    i = i + 1
Wend
'...
End Sub
     

参数

     
      
  • ReDim [Preserve] varname(subscripts) [, varname(subscripts)] . . . 当您更改最后一个维度的大小时,将数据保留在现有数组中。
  •   
  • Preserve变量的名称;遵循标准的变量命名约定。

  •   
  • varname数组变量的尺寸;最多可以声明60个维度。下标参数使用以下内容   语法:subscripts

  •   
     

数组的下限始终为零。