sex123 发表于 2014-6-4 20:26:48

如何比较两个一维数组。

数组一和数组二都是一维数组,
如何发现在数组二中,比数组一中没有出现过的变量。
比如数组一
3
sd.pdf
wiley.pdf
springer.pdf

数组二中
4
sd.pdf
wiley.pdf
springer.pdf
newone.pdf
如何找到这个newone.pdf

sex123 发表于 2014-6-4 20:27:46

忘记说了,里面的3和4是维度,不用比较。也不用把4这个数字找出来。

kevinch 发表于 2014-6-4 20:41:37

#include <array.au3>

$arr=StringSplit("sd.pdf|wiley.pdf|springer.pdf","|")
$arr2=StringSplit("sd.pdf|wiley.pdf|springer.pdf|newone.pdf|mytest.pdf","|")

$dic=ObjCreate("scripting.dictionary")
If IsObj($dic) Then
        For $n=1 To $arr2
                $dic($arr2[$n])=""
        Next
        For $n=1 To $arr
                If $dic.exists($arr[$n]) Then $dic.remove($arr[$n])
        Next
        $tmp=$dic.keys
        _ArrayDisplay($tmp)
EndIf不重复的可以这样试一下,如果有重复的要用另外的方法

sex123 发表于 2014-6-4 20:51:51

不重复的可以这样试一下,如果有重复的要用另外的方法
kevinch 发表于 2014-6-4 20:41 http://www.autoitx.com/images/common/back.gif


    如果第一个数组,只有维度,没有具体字符呢?就是说只有一个$arr=0,别的什么都没有,
第二个数组也有这种情况,就是只有一个维度$arr2=0,别的也是什么都没有,怎么办?

kevinch 发表于 2014-6-4 21:00:56

回复 4# sex123
你难道不会先判断第位再执行?这问题好像不应该问啊,一个稳定的程序是需要经常判断一些特殊情况的

sex123 发表于 2014-6-4 21:04:05

回复sex123
你难道不会先判断第位再执行?这问题好像不应该问啊,一个稳定的程序是需要经常判断一些 ...
kevinch 发表于 2014-6-4 21:00 http://www.autoitx.com/images/common/back.gif


    我问的就是如果第位是0的话,怎么执行你写的代码?

kevinch 发表于 2014-6-4 21:07:21

回复 6# sex123
你写个这样特殊的代码出来看下,就是多一个if判断呗

zch11230 发表于 2014-6-4 21:47:55

我也来一个试试#include <array.au3>
Local $array1=,$array2=
_ArrayDelete($array1,0)
_ArrayDelete($array2,0)
;~ _ArrayDisplay($array1)
;~ _ArrayDisplay($array2)
$string1=_ArrayToString($array1)
$string2=_ArrayToString($array2)
$string1=StringRegExpReplace($string1,"\.","\\\.")
;~ MsgBox(0,"",$string1)
;~ MsgBox(0,"",$string2)
$result=StringRegExpReplace($string2,$string1,"|")
$result=StringRegExpReplace($result,"\|\|","")
MsgBox(0,"",$result)
页: [1]
查看完整版本: 如何比较两个一维数组。