这是我在这里的第一篇文章,但阅读其他帖子帮助我解决了无数问题。你们真棒。所以感谢你们提供的所有帮助,并提前感谢你们给我的任何建议。
所以,我正在研究这个脚本,最终会随机从数组中的列表中选择数字。我在本节中尝试做的是读取NumberHistoryArray
第三维的每个元素中的数字,并将第二维中相应的数字写入第三维中指示的次数{{1}数组。我也写了一个文本文件,只是为了看它是否有效,如果我遇到其他问题并需要知道输出是什么,就要引用一些东西。
修改的 NumberHistoryArray的第二个维度包含数字1到35.第三个维度包含写入numberDump数组时第二个维度中每个数字应重复的次数。
如果NumberHistoryArray(4,0,0)为4,例如,它应该将数字1写入四次,每次在numberDump(0,0,0)到(0,0,3)中,并动态调整numberDump ()根据需要拟合每个1.通过numberDump(0,0,3)回显numberDump(0,0,0)的结果应该是1 1 1 1.如果NumberHistoryArray(4,1,1)是7,它应该在numberDump(1,1,0)中将数字2写入7次 修改的
当从Do循环中写入numberDump文本文件时,文本文件是完美的。如果我从Do循环内部回显数组中每个元素的内容,则内容是准确的。一旦在Do循环之外,内容为空白。任何人?
numberDump
答案 0 :(得分:0)
有没有听说过对象的生命周期?你在哪里初始化对象:在循环内或循环外部,以便可以在整个sub routine
/ {{1 }}
您如何在function
之外引用Array elements
?每个loop
都有一个element
。因此,你可以通过index
来推荐你。
e.g。 ArrayOne有3个index
0到2的元素。在你的循环中你可以引用Lower bound
来获得第二个元素。
除了使用索引来引用元素之外,您还可以尝试在ArrayOne(1)
或debug mode
上的immediate window
期间查看数组元素。
因此,当您查看这些提示时,请向我们提供正确的完整代码以供进一步验证。
答案 1 :(得分:0)
此处的问题是,您要在每次迭代时将numberDump
的第三维尺寸调整为x
,并且每次迭代x
都要重置n
的值。例如,当n
为0时,在Do
循环结束时,x
可能等于10.但是,在下一次迭代中,n
为1时,x
重置为0,最后将numberDump
的第三维尺寸调整为0,删除大部分现有元素。
有两种方法可以解决这个问题:
跟踪x
的所有次迭代n
的最大值。根据需要使用该值调整numberDump
的大小。
使用锯齿状数组(也称为数组数组)。在这种情况下,numberDump
将是一个二维数组,其值是包含重复值的数组。这将允许每个值具有不同的长度,而不是三维数组,其中第三维始终具有相同的长度。