[已解决]不知这种情况下的数组,该如何识别里面的递增数字
本帖最后由 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
最终就是想形成图中效果,
#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
这个我想本来是从网页中来的,网页中本来就有第几集的吧 回复 3# seniors
啊?我随便chr的字幕 lost是我现在看的 就随便用上的 本帖最后由 Ycxw2008 于 2012-2-27 14:48 编辑
回复 2# afan
afan版主 可能我没表达清楚,
我就是想在编译好的工具的下实现下这种功能
也就是说这后面可能不是720p
又或者就刚好这一组数字递增
就是增加一个自动判断
一些简单的判断 马马虎虎自己可以应付
前2天想到这种情况后就卡住了,
想2天未果
不知我这种想法 可以实现不
{:face (382):} 回复 5# Ycxw2008
如果你认为这就是成品它当然不具备任何功能,这仅是例子,况且还是满足条件的例子。需要什么功能,如何判断都应该是自己的事。另外,“自动判断”也要有个度。 回复seniors
啊?我随便chr的字幕 lost是我现在看的 就随便用上的
Ycxw2008 发表于 2012-2-27 14:37 http://www.autoitx.com/images/common/back.gif
“随便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
这些内容要从一个地方得到,你已经是编译好的工具了,更是想不通了,没源码怎么会有编译好的东西 关于自动判断,可以给楼主提供个思路。
1,定义优先级。
!1.判断所有文件名中是否都含有且仅含有一组数字,如果是,不用往下判断了,直接提取排序。
!2.判断所有文件名中是否都含有一组双字节的计数文字(如一、二、三、Ⅰ、Ⅱ、Ⅲ),如果是,不用往下判断了,直接提取排序。
!3.判断所有文件名中是否都不含数字,如果是,不用往下判断了,直接排序。
2,设置匹配规则
如果不符合自动判断的条件则进入人工提取。无外乎加个输入框,输入诸如正则之类的匹配符,再提取排序。
也可定义几个模板(如后缀名前段、文件名首段。。。),做下拉框选择。 回复 8# afan
谢谢afan版主,我大概思路就是这样的,只是卡在我说的这情况了,只有继续想了,3Q 回复afan
谢谢afan版主,我大概思路就是这样的,只是卡在我说的这情况了,只有继续想了,3Q
Ycxw2008 发表于 2012-2-27 17:46 http://www.autoitx.com/images/common/back.gif
你还真会空当接龙… :) 为何不在一楼说说你的思路? 回复 10# afan
莫非版主怀疑我再灌水吗{:face (229):}
因为你的几句话我又打起精神准备继续了,
所以为了感谢并且尊重你,才做出这种情况的
在上面回我怕你看不到, 回复afan
莫非版主怀疑我再灌水吗
因为你的几句话我又打起精神准备继续了,
所以为了 ...
Ycxw2008 发表于 2012-2-27 18:05 http://www.autoitx.com/images/common/back.gif
这算哪门子灌水?你的贴自己的内容太少了… 回复 12# afan
afan老大 我平常在listview建gui上下文都是下面这种方法建
但是我发现这样好像严重影响效率,不知能不能在创建gui的时候就建立好了
然后选中列表项的时候就就会弹出来?或者给个有示例的帖子链接,谢谢了
我没搜索到相关信息 :(
For x to x
GuictrlCreateLIstViewItem
$menu=GUICtrlCreateContextMenu
GuictrlCreateMenuItem
Next 先单独 GUICtrlCreateContextMenu 创建菜单
注册 $WM_NOTIFY 消息
在 $NM_RCLICK 消息中 _GUICtrlMenu_TrackPopupMenu 显示菜单即可 回复 14# afan
刚准备改帖子,刚看到p版的qq登录例子,刚好符合,不过还是谢谢afan老大啦:)
页:
[1]
2