VB6动态匹配数组

时间:2014-06-10 03:38:51

标签: arrays vb6

我有一个大的数据文件将解析并将被放入Array1和Array2来执行计算但是扭曲是一些数据没有计算所以应该做的是复制当前数据(在Array2中)没有计算的数据。以下是我应该做什么和我的问题的样本:

这是具有计算的图例名称: [A,B,C]

示例:

Legend Array1   Array1 Data        Legend Array2         Array2 Data
A[0]              45[0]            A[0]                   50[0]
B[1]              10[1]            C[1]                   25[1]
C[2]              15[2]            E[2]                   10[2]
D[3]             143[3]            F[3]                    0[3]
E[4]               0[4]            B[4]                   11[4]
                                   D[5]                  150[5]

在上面的示例中,您将看到不同长度的数组,这是我的问题,因为我需要获取具有图例名称“A”,“B”和“C”的数据的差异,但是您可以看到阵列中的位置是不同的,所以趋势是我会得到错误的计算或错误的答案。我该怎么做才能解决这个问题?如何匹配2个数组以获得计算中的正确答案?提前感谢您的帮助,非常感谢。 :)

2 个答案:

答案 0 :(得分:0)

解决此问题的一种方法是按图例对数组进行排序。我不打算在这里提供样本,因为它太长了,但是在搜索VB6排序数组'会给你一些帮助。

尝试answers from this question

答案 1 :(得分:0)

不是将值存储在数组中,而是将它们存储在自定义集合中,并通过Legend键入集合。例如,您将拥有一个名为Legend(string),X(int),Y(int)的属性的类。 您将拥有一个名为calcSources的自定义集合。

  • 当您从文件中读取每个项目时,您会检查是否存在 图例已存在于您的收藏中(通过查看关键字 存在,这真的很快)。
  • 如果确实存在,则根据需要在X或Y中添加值
  • 如果它不存在,您可以创建该类的实例,设置它的值,然后使用图例作为键将其添加到集合中。
  • 一旦加载了所有值,就可以 检查每行中是否有有效值并仅计算 在那些你做的地方。

有关在VB6中创建自定义集合的帮助,请查看这些文章 http://anturcynhyrfus.blogspot.ie/2009/03/creating-custom-collection-object.html

VB 6 How to make Custom Collection Class to support For Each

很抱歉,不再使用VB6,否则会为你做一个例子。