【已解决】如何将ini文件中所有字段名及关键字变成组合列表中的子项?
本帖最后由 silvay22 于 2013-2-17 22:07 编辑脚本目录下有 GR.ini 文件,内容如下:
SID=1
CID=69
SID=2
CID=55
SID=3
CID=99
组合列表图形界面的代码如下:
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("combo test", 300, 200)
$combo = GUICtrlCreateCombo("", 20, 20, 150)
GUISetState(@SW_SHOW) 本帖最后由 silvay22 于 2013-2-17 20:49 编辑
论坛中过去有帖子问过这个问题,但是那个代码只能显示字段名,我想将关键字也一同显示该如何做?
仅显示字段名的代码如下:
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Dim $IniName,$cbData
$Form1 = GUICreate("combo test", 300, 200)
$combo = GUICtrlCreateCombo("", 20, 20, 150)
GUISetState(@SW_SHOW)
$IniName = IniReadSectionNames("GR.ini")
For $i = 1 To $IniName
$cbData &= $IniName[$i]& '|'
Next
GUICtrlSetData($combo, $cbData)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd 循环里面再循环一下就行了For $i = 1 To $IniName
$cbData &= $IniName[$i] & '|'
$aKey = IniReadSection("GR.ini", $IniName[$i])
If @Error Then ContinueLoop
For $j = 1 To $aKey
$cbData &= $aKey[$j] & '|'
Next
Next
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Dim $IniName,$cbData
$Form1 = GUICreate("combo test", 300, 200)
$combo = GUICtrlCreateCombo("", 20, 20, 150)
GUISetState(@SW_SHOW)
$IniName = IniReadSectionNames("GR.ini")
If @error Then
MsgBox(16, "出错!", "配置文件可能有错误!")
Else
Dim $keys
For $i = 1 To $IniName
$cbData &= $IniName[$i]
$keys = IniReadSection("GR.ini", $IniName[$i])
If @error Then
;
Else
$cbData &= ' --- '
For $j = 1 To $keys
$cbData &= $keys[$j]
If $j=$keys Then ContinueLoop
$cbData &= ', '
Next
EndIf
$cbData &= '|'
Next
GUICtrlSetData($combo, $cbData)
EndIf
回复 3# afan
谢谢afan精准而及时的回答!祝工作顺利! 回复 4# veket_linux
同时也谢谢veket_linux的回答,从中又学到了我想要的知识。祝工作顺利! 在来个效果,利用输入法中的制表符
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Dim $IniName,$cbData
$Form1 = GUICreate("combo test", 300, 200)
$combo = GUICtrlCreateCombo("", 20, 20, 150)
GUISetState(@SW_SHOW)
$IniName = IniReadSectionNames("GR.ini")
If @error Then
MsgBox(16, "出错!", "配置文件可能有错误!")
Else
Dim $keys
For $i = 1 To $IniName
$cbData &= $IniName[$i] & '|';
$keys = IniReadSection("GR.ini", $IniName[$i])
If @error Then
;
Else
For $j = 1 To $keys
$cbData &= ' └── ' & $keys[$j] & '|';本行使用了制表符
Next
EndIf
$cbData &= '|'
Next
GUICtrlSetData($combo, $cbData)
EndIf
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
veket_linux真是热心谢谢兄弟的再次回复。 实例代码,好啊。
页:
[1]