vb6:2D动态数组的重新定尺寸

时间:2011-06-08 09:35:33

标签: arrays multidimensional-array vb6 dynamic-arrays

我正在使用数组来根据它的压力存储蒸汽的属性。现在我有9个压力的属性,所以我使用的是静态数组。我想更灵活,所以我想切换到动态数组。

当我在循环中使用ReDim foo(1 to i, 1 to 10)时,我完全松开了除最后一行之外的所有数据 当我使用ReDim Preserve foo(1 to i, 1 to 10)ReDim Preserve(i,10)程序抛出错误“运行时错误'9':下标超出范围”时。 i从1到9。

如何在不丢失数据的情况下将行/列添加到数组中?

1 个答案:

答案 0 :(得分:6)

您可能只有Redim保留VB6多维数组中的 final 维度。以下是MSDN的信息:

  

如果您包含Preserve关键字,   Visual Basic从中复制元素   现有数组到新数组。   使用“保留”时,可以调整大小   只有数组的最后一个维度,   而且你必须拥有其他每一个维度   指定它已有的相同大小   在现有的数组中。

     

例如,如果您的数组只有   一个维度,你可以调整它   维度,仍然保留   数组的内容,因为它是   最后也是唯一的维度。然而,   如果您的阵列有两个或更多   尺寸,你可以改变尺寸   如果您使用,只有最后一个维度   保留

     

以下示例增加了   a的最后一个维度的大小   动态数组不丢失任何   数组中的现有数据,然后   使用部分数据减小大小   损失:

 Dim IntArray(10, 10, 10) As Integer 
 ReDim Preserve IntArray(10, 10, 20) 
 ReDim Preserve IntArray(10, 10, 15)