注册 登录
编程论坛 VB6论坛

数组关联比较

knight828 发布于 2014-11-18 22:26, 632 次点击
四个a(i),b(i),c(i),d(i);其中a(i)与b(i)相关联;c(i)与d(i)相关联,比较a(i)和c(i)以及b(i)和d(i)差异;示例如下:
a(i)        b(i)            c(i)        d(i)
A010        Q1,Q2,Q3        A010       Q1,Q2,Q3
A112        Q4,Q5           A112       Q4,Q5
A115        Q104,Q106       A116       Q104,Q105     
A121        Q111,Q21        A121       Q111
A244        R108            A244       R108,R109
A233        C132,C233       A231       C132,C233
......      ......          ......     ......
15 回复
#2
益西翁登2014-11-20 10:09
对数组不太了解
#3
yangfrancis2014-11-20 16:32
for i=0 to 5
   if a(i)=c(i) then
       print "第" + str(i) + "项一致"
   else
       print "第" + str(i) + "项a值为" + a(i) + ",c值为" + c(i)
   end if
next i

b与d也可以这样比较。只是有一点,有些看不出你的数据类型是什么。我这里是假定它为字符串。如果是长整型什么的,需要经过转换类型再屏幕输出。
#4
playyang1232014-11-20 16:35
怎么关联发   左右关联还是别的
#5
knight8282014-11-20 20:34
回复 3 楼 yangfrancis
是字符串
#6
knight8282014-11-20 20:38
也就是a(i)和b(i)一一对应,比方说,a(0)="A010"时,b(0)="Q1,Q2,Q3"
c(i)与d(i)也是如此!
#7
knight8282014-11-20 20:42
回复 3 楼 yangfrancis
没有这么简单吧!
要对逗号间隔的字符串一一对比!
#8
xzlxzlxzl2014-11-21 07:42
回复 7 楼 knight828
楼主的意思是说“Q1,Q2,Q3”和“Q1,Q3,Q2”是相等的?
#9
yangfrancis2014-11-21 08:34
哦,那么那个逗号是表示将三种取值的可能性间隔开了?什么数型类型来实现这种并排啊?纯粹的字符串好像只能一个取值呢
#10
yangfrancis2014-11-21 08:47
如果楼主的"Q1,Q2,Q3"是一个字符串,又需要比对逗号隔开的三个部分的话,那就费事了。可以用这种思路(但很麻烦),再定义一个用来分别储存每一项的"Q1","Q2","Q3"的二维数组。通过if Mid(str(row, column), position, 1)=","来获得逗号的具体位置和个数,再用Mid()函数分别提取被逗号隔开的几个部分。自己试试吧,代码太繁琐我就偷懒了。
#11
xzlxzlxzl2014-11-21 21:13
回复 10 楼 yangfrancis
应该不是特别麻烦,用一个函数解决
private function CompStr(iStr1 as string,iStr2 as string,bStr as string) as boolean
'判断有分隔符的iStr1 和iStr2元素是否相同,分隔符为bstr,相同为True,不同为False
dim b() as string,i as integer,f as boolean
b=split(istr1,bstr)
if len(istr1)<>len(istr2) then exit function
CompStr=true
for i=0 to ubound(b)
  if b(i)<>"" and instr(istr2,b(i))=0 then
    CompStr=false
    exit for
  end if
next
end function
#12
knight8282014-11-21 22:16
回复 8 楼 xzlxzlxzl
是的,位置顺序可以不一样
#13
knight8282014-11-21 22:18
回复 10 楼 yangfrancis
用str的话,存在一个问题,比如Q2可以在Q20里找到!
#14
knight8282014-11-22 12:53
回复 11 楼 xzlxzlxzl
这个只能比个大概吧!
#15
xzlxzlxzl2014-11-22 13:29
回复 14 楼 knight828
咱们虽然都是业余的,但你这话说的已经在业余之外了。
程序只是在特定条件下完成指定功能,要么行,要么就不行,比较个大概是什么意思?你仔细并读懂代码了?有没有实际运行并找到这个大概?
#16
knight8282014-11-22 17:15
回复 15 楼 xzlxzlxzl
不好意,bz说得对,我有空试一下!
sorry!
tks!
1