找回密码
 加入
搜索
查看: 2450|回复: 3

[AU3基础] _ArraySearch 可不可以返回多个数据?

[复制链接]
发表于 2011-3-29 12:34:32 | 显示全部楼层 |阅读模式
本帖最后由 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的话,他能返回索引,但是好像不能把索引后面的数据输出出来啊
怎样能返回所有的数据呢?
发表于 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的标志参数
 楼主| 发表于 2011-3-29 13:12:19 | 显示全部楼层
自己改下不就行了
$aI = _arrayfindall()
dim $aRet[1]
for $i = 1 to $aI[0]
    $aRet[$i] = $array[ ...
netegg 发表于 2011-3-29 12:58


不懂............
 楼主| 发表于 2011-3-29 13:13:03 | 显示全部楼层
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-21 10:52 , Processed in 0.083036 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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