找回密码
 加入
搜索
查看: 7807|回复: 21

[AU3基础] 【已解决】找出数组B中相同的值并记录位置,再比较数组C相应位置的值是否相同。

 火.. [复制链接]
发表于 2012-4-9 23:07:21 | 显示全部楼层 |阅读模式
本帖最后由 lion.lee 于 2012-4-10 23:05 编辑

想用_arrayfindall,测试了好几次都搞不定,头真的好大。
刚开始用双重for循环,结果实现不了。
用_arrayfind,_arraysearch试了几回,也搞不定。
特来求助各位大大,谢谢了!
正则目前没有学习过,不知道能不能行,但建议不使用正则,若用正则的话,我怕自己消化不了。
主要想通过这次求助掌握一下这类问题的处理思路。
再次感谢各位前辈的热心指导,谢谢!
#include <Array.au3>
Global $A[10],$B[10] = [1,2,3,4,3,6,3,2,4,2],$C[10] = [90,270,180,0,0,90,270,180,180,0],$D
For $i = 1 To 10
        $A[$i] = $B[$i] & $C[$i]
Next

#cs
        想实现当"数组B中的数值相同时比较数组C中对应的值是否相同,如不相同则将其列出来"
是比较同一个数组(B)中的值,从开头到结束的数据,如果数组中有一样的数据,就把该数据所在B的位置记录下来,再比较另外一个数组C对应位置的数据,如果该数组C中的值不一样则返回该位置的内容。也就是说如果B3 = B5 = B7 ,则比较C3,C5,C7的内容是否相同,若不相同则输出C3,C5,C7。
#ce
正解在19楼!非常感谢!

评分

参与人数 1金钱 +10 收起 理由
afan + 10

查看全部评分

发表于 2012-4-9 23:13:11 | 显示全部楼层
我的确没看明白是什么意思。
你的意思是不是比较两个数组,从开头到结束的数据,如果两个数组相同位置的数据一样就记录下来并返回数据内容?
 楼主| 发表于 2012-4-9 23:18:26 | 显示全部楼层
本帖最后由 lion.lee 于 2012-4-9 23:22 编辑

回复 2# nmgwddj
是比较同一个数组中的值,从开头到结束的数据,如果数组中有一样的数据,就把该数据所在的位置记录下来,再比较另外一个数组对应位置的数据,如果该数组中的值不一样则返回数据内容。也就是说如果B1 = B3 ,则比较C1是否等于C3。
发表于 2012-4-9 23:25:16 | 显示全部楼层
本帖最后由 netegg 于 2012-4-9 23:34 编辑

#include <Array.au3>
Global $A[10],$B[10] = [1,2,3,4,3,6,5,2,4,9],$C[10] = [90,270,180,0,0,90,270,180,180,0],$aD, $temp=''
$aD = _arrayunique($B)
for $i in $aD
local $aIndex = _arrayfindall($B, $i)
if ubound($aIndex)=2 and $C[$aIndex[0]] = $C[$aIndex[1]] then $temp &= $C[$aIndex[0]]&','
next
msgbox(0,0,$temp)
 楼主| 发表于 2012-4-9 23:35:02 | 显示全部楼层
感谢大大的点拨,我一会测试一下我本来的程序看是否能实现。再次感谢!
发表于 2012-4-10 00:44:03 | 显示全部楼层
不知道最终要得到什么。或许可以用正则完成。
发表于 2012-4-10 00:48:22 | 显示全部楼层
本帖最后由 netegg 于 2012-4-10 00:51 编辑

回复 6# afan
可能不太好弄,
$b[n]=$b[m], $c[n]<>$c[m]
要的是$c[n],$c[m]的集合
我那个代码也有问题,只是个引子,具体的可能还要细整
发表于 2012-4-10 00:50:34 | 显示全部楼层
回复 4# netegg


    这样做是不是如果两个数组长度不符,就不能遍历所有数据了?假设第一个数组短,第二个数组长。
发表于 2012-4-10 00:52:35 | 显示全部楼层
回复 8# nmgwddj
遍历没问题,不牵扯数组元素的个数,只牵扯用哪个数组作为比较的基础
发表于 2012-4-10 00:53:19 | 显示全部楼层
回复 7# netegg


    嗯,我知道。我会先合并两个数组的字符串~
LZ 的用意不大清楚,就不搞了~  今天累了,睡~
发表于 2012-4-10 00:54:06 | 显示全部楼层
本帖最后由 netegg 于 2012-4-10 00:57 编辑

回复 10# afan
合并肯定不行,a[1] =1,a[2] = 1, b[1] =10, b[2] =10数组的值是不等的,但相等关系是一样的
楼主比的是当a[1] = a[2]时 b[1] 是否等于 b[2]
发表于 2012-4-10 00:56:37 | 显示全部楼层
回复 11# netegg


    可以的,我已经试过了~ 安鸟,蛋蛋~
发表于 2012-4-10 00:57:54 | 显示全部楼层
回复 12# afan

拆值?
发表于 2012-4-10 00:59:52 | 显示全部楼层
回复 13# netegg


    1:90,2:270,3:180,...
发表于 2012-4-10 01:01:45 | 显示全部楼层
回复 14# afan
这倒是应该可以用正则处理了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-28 05:06 , Processed in 0.092482 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表