vb6:二维动态数组的重新尺寸调整

发布于 2024-11-14 20:11:52 字数 330 浏览 3 评论 0原文

我使用数组根据蒸汽的压力来存储蒸汽的属性。现在我有 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。

如何将行/列添加到充满数据的数组而不丢失它们?

I am using arrays to store properties of steam according to it's pressure. Right now I have properties of exactly 9 pressures so I'm using static array. I'd like to be more flexible so I'd like to switch to dynamic arrays.

When I use ReDim foo(1 to i, 1 to 10) in loop I completely loose all data except last line.
When I use ReDim Preserve foo(1 to i, 1 to 10) or ReDim Preserve(i,10) Program throws error of "Runtime error '9': subscript out of range". i goes from 1 to 9.

How can I add line/column to array full of data without loosing them?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

九公里浅绿 2024-11-21 20:11:52

您只能 Redim 保留 VB6 多维数组中的最终维度。以下是来自 MSDN 的信息:

如果您包含 Preserve 关键字,
Visual Basic 复制元素
现有数组到新数组。
使用 Preserve 时,您可以调整大小
仅数组的最后一个维度,
对于每个其他维度,你必须
指定与已有的尺寸相同的尺寸
在现有数组中。

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

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

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

You may only Redim Preserve the final dimension in a VB6 multidimensional array. Here's the info from MSDN:

If you include the Preserve keyword,
Visual Basic copies the elements from
the existing array to the new array.
When you use Preserve, you can resize
only the last dimension of the array,
and for every other dimension you must
specify the same size it already has
in the existing array.

For example, if your array has only
one dimension, you can resize that
dimension and still preserve the
contents of the array, because it is
the last and only dimension. However,
if your array has two or more
dimensions, you can change the size of
only the last dimension if you use
Preserve.

The following example increases the
size of the last dimension of a
dynamic array without losing any
existing data in the array, and then
decreases the size with partial data
loss:

 Dim IntArray(10, 10, 10) As Integer 
 ReDim Preserve IntArray(10, 10, 20) 
 ReDim Preserve IntArray(10, 10, 15)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文