找回密码
 加入
搜索
楼主: lzare

[AU3基础] 数组比较

 火.. [复制链接]
发表于 2015-2-5 22:07:07 | 显示全部楼层
回复 15# netegg


    循环次数没少
发表于 2015-2-5 22:07:44 | 显示全部楼层
回复 15# netegg


跟14楼比没少
发表于 2015-2-5 22:12:04 | 显示全部楼层
回复 15# netegg


只是看着少了,其实_ArrayConcatenate,_arrayfindall里都是循环
发表于 2015-2-5 22:34:39 | 显示全部楼层
本帖最后由 netegg 于 2015-2-5 22:44 编辑

回复 18# zhouhaijin
这我当然知道,只是你那个代码每次都要从头到尾找,似乎没必要,关键是次数多少
发表于 2015-2-5 22:49:24 | 显示全部楼层
回复 19# netegg


    对,第一个代码的第二次循环里再找数据没必要
发表于 2015-2-5 22:53:09 | 显示全部楼层
回复 19# netegg


   你说了,我就再优化了一下,第二个代码跟你那个道理一样。
不过第一个也没900次,就160次,第二个和你写的这个应该100次左右
发表于 2015-2-5 22:58:06 | 显示全部楼层
#include
dim $i =0,$str=''
Dim $aA1[5] = [11, 22, 33, 44, 66]
Dim $aA2[7] = [11, 22, 33, 44, 66,  ...
netegg 发表于 2015-2-5 21:29



        不对,这个数组数量当8个和10个的话应该是18*18=324次
发表于 2015-2-5 23:14:32 | 显示全部楼层
本帖最后由 netegg 于 2015-2-6 00:08 编辑

[au3]#include<array.au3>
Dim $XH[6] = [11, 22, 33, 44, 66]
Dim $SC[7] = [11, 22, 33, 44, 66, 77, 88]
$str = _arraytostring($XH)
For $i In $SC
        $str &= '|'&$i
        StringReplace($str, String($i), String($i))
        Local $iReplacements = @extended
        If $iReplacements  >1 Then $str=StringReplace($str, String($i), '', 0)
next
MsgBox(0,0,stringregexpreplace($str, '\|{2,}', '\|'))

[/au3]
返回的时候,用正则把所有的多个‘|’都换成一个
发表于 2015-2-5 23:28:18 | 显示全部楼层
回复 23# netegg


    这方法好
发表于 2015-2-6 00:08:50 | 显示全部楼层
回复 23# netegg


    这个没实现楼主的要求
方法很好。
发表于 2015-2-6 00:10:11 | 显示全部楼层
根据你的方法来达到楼主要求

#include<array.au3>
Dim $XH[9] = [00, 11, 22, 33, 44, 66, 00, 99, 00]
Dim $SC[8] = [88, 11, 22, 33, 44, 66, 77, 88]
$str1 = _ArrayToString($XH) & '|'
$str2 = _ArrayToString($SC)
For $i In $SC
        If StringInStr($str1, $i) > 0 Then
                $str1 = StringReplace($str1, String($i), '')
                $str2 = StringReplace($str2, String($i), '')
        EndIf
Next
$str = StringRegExp($str1 & $str2, '\|(\w)', 3)
_ArrayDisplay($str)
发表于 2015-2-6 00:12:53 | 显示全部楼层
回复 1# lzare


    结贴,不想再灌水了,赚了很多金币了。
发表于 2015-2-6 00:17:05 | 显示全部楼层
搞错了,如果要把非重复值输出的话,合并两个数组,_arrayuniq就行了
发表于 2015-2-6 00:27:39 | 显示全部楼层
回复 28# netegg


    都没错,是楼主表达不清。到底是两个数组的不同值还是一个数组里的不同值也算上
发表于 2015-2-12 17:50:57 | 显示全部楼层
zhouhaijin 发表于 2015-2-5 20:53



    _ArraySearch  搜索含有,不是绝对相同比较 ,我比较喜欢用  _ArrayFindAll
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-17 16:16 , Processed in 0.073260 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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