找回密码
 加入
搜索
查看: 2160|回复: 4

[AU3基础] 【已解决】_GUICtrlListView_FindInText 如何检索多个项?

[复制链接]
发表于 2010-7-4 11:46:16 | 显示全部楼层 |阅读模式
本帖最后由 karlpopper 于 2010-7-4 23:38 编辑

现在我知道如何检索单个但是多个如何返回呢

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-7-4 12:07:36 | 显示全部楼层
找到一个再继续找下一个…
发表于 2010-7-4 23:12:12 | 显示全部楼层
本帖最后由 afan 于 2010-7-4 23:24 编辑

如果没有相关函数就用我写的这个吧~
Func _GUICtrlListView_FindInText_all($hWnd, $sText, $flag = 0)
        ;afan提示:本函数用于搜索所有包含指定文本的项目或子项.
        ;可选参数$flag=0时返回由|间隔的(0基)索引的字符串,(默认)
        ;$flag=1时返回一个包含(0基)索引的数组,0号元素为搜索到的项目总数.
        ;成功:返回所有匹配的(0基)索引;失败:返回-1,未搜索到.
        Local $sI = _GUICtrlListView_FindInText($hWnd, $sText)
        If $sI = -1 Then Return -1
        Local $eI = _GUICtrlListView_GetItemCount($hWnd) - 1
        Local $all = $sI, $_sI, $i
        For $i = $sI To $eI
                $_sI = _GUICtrlListView_FindInText($hWnd, $sText, $i, False)
                If $_sI <> -1 Then
                        $i = $_sI - 1
                        $all &= '|' & $_sI
                EndIf
        Next
        If $flag = 0 Then Return $all
        Local $aAll = StringSplit($all, '|')
        Return $aAll
EndFunc   ;==>_GUICtrlListView_FindInText_all

评分

参与人数 1金钱 +10 贡献 +1 收起 理由
karlpopper + 10 + 1

查看全部评分

 楼主| 发表于 2010-7-4 23:36:13 | 显示全部楼层
感谢A大 不过我也找到办法了
While 1
            $iFoundPos = _GUICtrlListView_FindInText($hWndListView, $sReadInput, $iSearchPos, False)
            If $iFoundPos > -1 Then
                If _GUICtrlListView_GetItemText($hWndListView, $iFoundPos, 1) = $sReadInput Then $sString &= "|" & $iFoundPos
            Else
                ExitLoop
            EndIf
            $iSearchPos = $iFoundPos
            WEnd
我敬佩你这样的人 是真心帮助人的 谢谢~
发表于 2010-7-5 00:14:09 | 显示全部楼层
回复 4# karlpopper


    只干力所能及的事,呵呵~

不过你的方法由于是用的 _GUICtrlListView_GetItemText,那应该就是整串匹配了,也就不是包含的意思了~ 我的代码是包含的意思,如搜索“a”,可以匹配到 abc、a、bbaa …
各有所用吧~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-3 14:23 , Processed in 0.101285 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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