找回密码
 加入
搜索
查看: 8703|回复: 19

[效率算法] [已解决]不知这种情况下的数组,该如何识别里面的递增数字

  [复制链接]
发表于 2012-2-27 12:59:27 | 显示全部楼层 |阅读模式
本帖最后由 Ycxw2008 于 2012-2-27 15:22 编辑


就是想在下面类似这种每个文件有多种数字的情况下,
能识别一下递增的规律,
现在玩电脑除了au3 就是 电视剧
也没啥追求了,或者给点思路也行,谢谢!


1998.aclo05.720p.mkv
2004.bhjh20.1080p.mkv
2004.cdfx02.720p.mkv
2004.ffin07.720p.mkv
2003.fwvs13.720p.mkv
2004.gxwn10.480p.mkv
2004.hszh14.1080p.mkv
2004.iolc08.720p.mkv
2004.jfwz15.720p.mkv
2002.jxli24.720p.mkv
2004.kazu04.720p.mkv
2004.kyrz03.1080p.mkv
2004.lpbr12.720p.mkv
2004.oujg19.720p.mkv
2002.ppmz17.720p.mkv
2004.qcfp09.720p.mkv
2004.qwqm16.480p.mkv
2004.rcvj25.720p.mkv
2010.rrnd21.720p.mkv
2012.scsf23.720p.mkv
2004.usvm06.720p.mkv
2009.wwhv01.720p.mkv
2008.xbgt18.720p.mkv
2004.xzlv22.720p.mkv
2004.youh11.720p.mkv


最终就是想形成图中效果,




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-2-27 13:43:01 | 显示全部楼层
#include <GuiListView.au3>

Local $Str = _
                '1998.aclo05.720p.mkv' & @CRLF & _
                '2004.bhjh20.1080p.mkv' & @CRLF & _
                '2004.cdfx02.720p.mkv' & @CRLF & _
                '2004.ffin07.720p.mkv' & @CRLF & _
                '2003.fwvs13.720p.mkv' & @CRLF & _
                '2004.gxwn10.480p.mkv' & @CRLF & _
                '2004.hszh14.1080p.mkv' & @CRLF & _
                '2004.iolc08.720p.mkv' & @CRLF & _
                '2004.jfwz15.720p.mkv' & @CRLF & _
                '2002.jxli24.720p.mkv' & @CRLF & _
                '2004.kazu04.720p.mkv' & @CRLF & _
                '2004.kyrz03.1080p.mkv' & @CRLF & _
                '2004.lpbr12.720p.mkv' & @CRLF & _
                '2004.oujg19.720p.mkv' & @CRLF & _
                '2002.ppmz17.720p.mkv' & @CRLF & _
                '2004.qcfp09.720p.mkv' & @CRLF & _
                '2004.qwqm16.480p.mkv' & @CRLF & _
                '2004.rcvj25.720p.mkv' & @CRLF & _
                '2010.rrnd21.720p.mkv' & @CRLF & _
                '2012.scsf23.720p.mkv' & @CRLF & _
                '2004.usvm06.720p.mkv' & @CRLF & _
                '2009.wwhv01.720p.mkv' & @CRLF & _
                '2008.xbgt18.720p.mkv' & @CRLF & _
                '2004.xzlv22.720p.mkv' & @CRLF & _
                '2004.youh11.720p.mkv'
Local $aSR1 = StringRegExp($str, '\d+(?=\.\d+p)', 3)
Local $aSR2 = StringRegExp($str, '\V+', 3)

GUICreate('ListView 排序', 300, 400)
$hListView = GUICtrlCreateListView('集别|文件名', 2, 2, 296, 380)
GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
GUICtrlSendMsg($hListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
For $i = 0 To UBound($aSR1) - 1
        GUICtrlCreateListViewItem($aSR1[$i] & '|' & $aSR2[$i], $hListView)
Next
_GUICtrlListView_SetColumnWidth($hListView, 0, 65)
GUIRegisterMsg(0x004E, 'WM_NOTIFY')
_GUICtrlListView_RegisterSortCallBack($hListView)
_GUICtrlListView_SortItems($hListView, 0)
GUISetState()

Do
Until GUIGetMsg() = -3
_GUICtrlListView_UnRegisterSortCallBack($hListView)
GUIDelete()

Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
        #forceref $hWnd, $iMsg, $iwParam
        Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo
        $hWndListView = $hListView
        If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)
        $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
        $hWndFrom = HWnd(DllStructGetData($tNMHDR, 'hWndFrom'))
        $iIDFrom = DllStructGetData($tNMHDR, 'IDFrom')
        $iCode = DllStructGetData($tNMHDR, 'Code')
        Switch $hWndFrom
                Case $hWndListView
                        Switch $iCode
                                Case $LVN_COLUMNCLICK
                                        $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
                                        If DllStructGetData($tInfo, 'SubItem') = 0 Then
                                                _GUICtrlListView_SortItems($hListView, 0)
                                        EndIf
                        EndSwitch
        EndSwitch
EndFunc   ;==>WM_NOTIFY

评分

参与人数 1金钱 +10 贡献 +5 收起 理由
lpxx + 10 + 5 看了若干你的正则解答,还是你的原版回答启 ...

查看全部评分

发表于 2012-2-27 13:46:04 | 显示全部楼层
这个我想本来是从网页中来的,网页中本来就有第几集的吧
 楼主| 发表于 2012-2-27 14:37:53 | 显示全部楼层
回复 3# seniors


    啊?我随便chr的字幕 lost是我现在看的 就随便用上的
 楼主| 发表于 2012-2-27 14:44:20 | 显示全部楼层
本帖最后由 Ycxw2008 于 2012-2-27 14:48 编辑

回复 2# afan


    afan版主 可能我没表达清楚,
    我就是想在编译好的工具的下实现下这种功能
    也就是说这后面可能不是720p
    又或者就刚好这一组数字递增
    就是增加一个自动判断
    一些简单的判断 马马虎虎自己可以应付
    前2天想到这种情况后就卡住了,
     想2天未果
     不知我这种想法 可以实现不
     
发表于 2012-2-27 14:53:46 | 显示全部楼层
回复 5# Ycxw2008


    如果你认为这就是成品它当然不具备任何功能,这仅是例子,况且还是满足条件的例子。需要什么功能,如何判断都应该是自己的事。另外,“自动判断”也要有个度。
发表于 2012-2-27 14:58:25 | 显示全部楼层
回复  seniors


    啊?我随便chr的字幕 lost是我现在看的 就随便用上的
Ycxw2008 发表于 2012-2-27 14:37

“随便chr的字幕”看不懂,反正
1998.aclo05.720p.mkv
2004.bhjh20.1080p.mkv
2004.cdfx02.720p.mkv
2004.ffin07.720p.mkv
2003.fwvs13.720p.mkv
2004.gxwn10.480p.mkv
2004.hszh14.1080p.mkv
2004.iolc08.720p.mkv
2004.jfwz15.720p.mkv
2002.jxli24.720p.mkv
2004.kazu04.720p.mkv

这些内容要从一个地方得到,你已经是编译好的工具了,更是想不通了,没源码怎么会有编译好的东西
发表于 2012-2-27 15:48:29 | 显示全部楼层
关于自动判断,可以给楼主提供个思路。
1,定义优先级。
   !1.判断所有文件名中是否都含有且仅含有一组数字,如果是,不用往下判断了,直接提取排序。
   !2.判断所有文件名中是否都含有一组双字节的计数文字(如一、二、三、Ⅰ、Ⅱ、Ⅲ),如果是,不用往下判断了,直接提取排序。
   !3.判断所有文件名中是否都不含数字,如果是,不用往下判断了,直接排序。
2,设置匹配规则
   如果不符合自动判断的条件则进入人工提取。无外乎加个输入框,输入诸如正则之类的匹配符,再提取排序。
   也可定义几个模板(如后缀名前段、文件名首段。。。),做下拉框选择。
 楼主| 发表于 2012-2-27 17:46:08 | 显示全部楼层
回复 8# afan


    谢谢afan版主,我大概思路就是这样的,只是卡在我说的这情况了,只有继续想了,3Q
发表于 2012-2-27 17:49:49 | 显示全部楼层
回复  afan


    谢谢afan版主,我大概思路就是这样的,只是卡在我说的这情况了,只有继续想了,3Q
Ycxw2008 发表于 2012-2-27 17:46



    你还真会空当接龙… :) 为何不在一楼说说你的思路?
 楼主| 发表于 2012-2-27 18:05:37 | 显示全部楼层
回复 10# afan

莫非版主怀疑我再灌水吗
因为你的几句话我又打起精神准备继续了,
所以为了感谢并且尊重你,才做出这种情况的
在上面回我怕你看不到,
发表于 2012-2-27 18:09:09 | 显示全部楼层
回复  afan

莫非版主怀疑我再灌水吗
因为你的几句话我又打起精神准备继续了,
所以为了 ...
Ycxw2008 发表于 2012-2-27 18:05



    这算哪门子灌水?你的贴自己的内容太少了…
 楼主| 发表于 2012-2-28 12:56:19 | 显示全部楼层
回复 12# afan


    afan老大 我平常在listview建gui上下文都是下面这种方法建
    但是我发现这样好像严重影响效率,不知能不能在创建gui的时候就建立好了
    然后选中列表项的时候就就会弹出来?或者给个有示例的帖子链接,谢谢了
    我没搜索到相关信息 :(

  For x to x
     GuictrlCreateLIstViewItem
     $menu=GUICtrlCreateContextMenu
      GuictrlCreateMenuItem
   Next
发表于 2012-2-28 13:14:37 | 显示全部楼层
先单独 GUICtrlCreateContextMenu 创建菜单
注册 $WM_NOTIFY 消息
在 $NM_RCLICK 消息中 _GUICtrlMenu_TrackPopupMenu 显示菜单即可
 楼主| 发表于 2012-2-28 13:42:16 | 显示全部楼层
回复 14# afan


    刚准备改帖子,刚看到p版的qq登录例子,刚好符合,不过还是谢谢afan老大啦  :)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-19 12:25 , Processed in 0.089978 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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