【已解决】同一个正则提取出来为什么下拉框和列表框显示的数目不同
本帖最后由 ndyzx 于 2012-9-3 11:46 编辑文本文件取自论坛如下:<SCRIPT type=text/javascript>100</SCRIPT>
<TD>2011/01/10</TD>
<TD></TD>
<TD>2011/01/11</TD>
<TD>2011/01/12</TD>
<SCRIPT type=text/javascript>101</SCRIPT>
<TD>2011/01/20</TD>
<TD>2011/01/21</TD>
<TD></TD>
<TD>2011/01/23</TD>
<SCRIPT type=text/javascript>102</SCRIPT>
<TD>2011/02/10</TD>
<TD>2011/02/20</TD>
<TD>2011/02/21</TD>
<TD>2011/02/22</TD>
<SCRIPT type=text/javascript>103</SCRIPT>
<TD>2011/02/20</TD>
<TD>2011/02/19</TD>
<TD>2011/02/19</TD>
<TD>2011/01/20</TD>以下用下拉框列子:#include <array.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 256, 115, 192, 124)
$Combo1 = GUICtrlCreateCombo("", 40, 32, 145, 25)
GUISetState(@SW_SHOW)
read()
#endregion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func read()
$txt = FileRead("xu.txt")
ClipPut($txt)
Local $txt = ClipGet()
$var = StringRegExp($txt, "(?m)(?<=TD>).*(?=<)", 3)
If @error Then
MsgBox(4096, "", "错误, 读取列表文件失败.")
Else
For $i = 0 To UBound($var) - 1
GUICtrlSetData($Combo1, $var[$i])
Next
EndIf
EndFunc ;==>read显示如图:
以下用列表框代码:#include <array.au3>
$txt = FileRead("xu.txt")
ClipPut ( $txt )
Local $txt = ClipGet()
$str = StringRegExp($txt, "(?m)(?<=TD>).*(?=<)", 3)
_ArrayDisplay($str)显示如下:
为什么下拉框会少了哪么多?请高人指教。 #include <GuiComboBox.au3>
GUICreate('', 250, 100)
$Combo1 = GUICtrlCreateCombo("", 50, 30, 150, 25)
GUISetState()
Read()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
EndSwitch
WEnd
Func Read()
$txt = FileRead("xu.txt")
ClipPut($txt)
Local $txt = ClipGet()
$var = StringRegExp($txt, "(?m)(?<=<TD>)[^<]+", 3)
If @error Then
MsgBox(4096, "", "错误, 读取列表文件失败.")
Else
For $i = 0 To UBound($var) - 1
_GUICtrlComboBox_AddString($Combo1, $var[$i])
Next
EndIf
EndFunc ;==>Read
相同的都合并了 回复 2# 水木子
谢谢前辈,已解决了,不好意思,再请教一下,我想下拉框显示第一个数据,而不是显示空白,不知怎么弄。如下图要弄成右图的样子。
GUICtrlSetData(-1, "item1|item2|item3", "item3") 2楼代码中,第26行下面再插入一行,试试看!
_GUICtrlComboBox_SetEditText($Combo1, 'AutoIt3') 回复 5# happyplace
因为它不是固定值,这样是无端的增加了几行。 回复 6# 水木子
谢谢,这样可做为下拉内容提示用,但不会自动显示下拉框第一行内容。
页:
[1]