zhouhaijin
发表于 2015-2-5 22:07:07
回复 15# netegg
循环次数没少
zhouhaijin
发表于 2015-2-5 22:07:44
回复 15# netegg
跟14楼比没少
zhouhaijin
发表于 2015-2-5 22:12:04
回复 15# netegg
只是看着少了,其实_ArrayConcatenate,_arrayfindall里都是循环
netegg
发表于 2015-2-5 22:34:39
本帖最后由 netegg 于 2015-2-5 22:44 编辑
回复 18# zhouhaijin
这我当然知道,只是你那个代码每次都要从头到尾找,似乎没必要,关键是次数多少
zhouhaijin
发表于 2015-2-5 22:49:24
回复 19# netegg
对,第一个代码的第二次循环里再找数据没必要
zhouhaijin
发表于 2015-2-5 22:53:09
回复 19# netegg
你说了,我就再优化了一下,第二个代码跟你那个道理一样。
不过第一个也没900次,就160次,第二个和你写的这个应该100次左右
zhouhaijin
发表于 2015-2-5 22:58:06
#include
dim $i =0,$str=''
Dim $aA1 =
Dim $aA2 = [11, 22, 33, 44, 66,...
netegg 发表于 2015-2-5 21:29 http://www.autoitx.com/images/common/back.gif
不对,这个数组数量当8个和10个的话应该是18*18=324次
netegg
发表于 2015-2-5 23:14:32
本帖最后由 netegg 于 2015-2-6 00:08 编辑
#include<array.au3>
Dim $XH =
Dim $SC =
$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,}', '\|'))
返回的时候,用正则把所有的多个‘|’都换成一个
zhouhaijin
发表于 2015-2-5 23:28:18
回复 23# netegg
这方法好
zhouhaijin
发表于 2015-2-6 00:08:50
回复 23# netegg
这个没实现楼主的要求
方法很好。
zhouhaijin
发表于 2015-2-6 00:10:11
根据你的方法来达到楼主要求
#include<array.au3>
Dim $XH =
Dim $SC =
$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)
zhouhaijin
发表于 2015-2-6 00:12:53
回复 1# lzare
结贴,不想再灌水了,赚了很多金币了。
netegg
发表于 2015-2-6 00:17:05
搞错了,如果要把非重复值输出的话,合并两个数组,_arrayuniq就行了
zhouhaijin
发表于 2015-2-6 00:27:39
回复 28# netegg
都没错,是楼主表达不清。到底是两个数组的不同值还是一个数组里的不同值也算上
tvzml
发表于 2015-2-12 17:50:57
zhouhaijin 发表于 2015-2-5 20:53 http://www.autoitx.com/images/common/back.gif
_ArraySearch搜索含有,不是绝对相同比较 ,我比较喜欢用_ArrayFindAll