iori2882 发表于 2011-3-29 12:34:32

_ArraySearch 可不可以返回多个数据?

本帖最后由 iori2882 于 2011-3-29 13:02 编辑


#include <Array.au3>
$avArray = StringSplit("aa,ba,dd,cd,ee,fe,ge,he,ie", ",")
_ArraySort($avArray,0,1) ;
_ArrayDisplay($avArray, "$avArray 排序后 _ArraySort()")
$sSearch = InputBox("0", "请输入要搜索的数据。")
If @error Then Exit
$iIndex = _ArrayFindAll($avArray, $sSearch,0,0,0,1);搜索数组里的数据
If @error Then
    MsgBox(0, "没有找到匹配结果", "“" & $sSearch & "”搜索完毕,没有结果可显示。")
Else
        MsgBox(0,0,$avArray[$iIndex])
        _ArrayDisplay($iIndex,"搜索数组($avArray)中包含 0 的结果")
        MsgBox(0,0,$iIndex)
EndIf
上面如果用_ArraySearch,来搜索e的话 他只能返回最近的一个数据 ee 后面的fe ge什么的都不能返回
      如果用_ArrayFindAll,来搜索e的话,他能返回索引,但是好像不能把索引后面的数据输出出来啊
怎样能返回所有的数据呢?

netegg 发表于 2011-3-29 12:58:01

本帖最后由 netegg 于 2011-3-29 13:45 编辑

自己改下不就行了#include <Array.au3>
Global $aArray
$avArray = StringSplit("aa,ba,dd,cd,ee,fe,ge,hE,ie", ",")
$aA = _ArrayFindAllex($avArray, 'e', 0, 0, 1, 1, 2)
_ArrayDisplay($aA, ' ')
Func _arrayfindallex($aArray, $ibyte, $start, $end, $case, $partial, $iflag)
        Local $aI = _ArrayFindAll($aArray, $ibyte, $start, $end, $case, $partial)
        Dim $ret = ''
        For $i = 0 To UBound($aI) - 1
                $ret &= $aArray[$aI[$i]] & '|'
        Next
        Local $aRet = StringSplit(StringTrimRight($ret, 1), '|', $iflag)
        Return $aRet
EndFunc   ;==>_arrayfindallex
除了$iflag,所有的参数和_arrayfindall解释相同,$iflag为stringsplit的标志参数

iori2882 发表于 2011-3-29 13:12:19

自己改下不就行了
$aI = _arrayfindall()
dim $aRet
for $i = 1 to $aI
    $aRet[$i] = $array[ ...
netegg 发表于 2011-3-29 12:58 http://www.autoitx.com/images/common/back.gif

不懂............

iori2882 发表于 2011-3-29 13:13:03

{:face (319):}
页: [1]
查看完整版本: _ArraySearch 可不可以返回多个数据?