如何将此 INI 文件制作成 Autohotkey 中的列表视图
How can I make this INI file into a listview in Autohotkey
我想将此 INI 文件安排到一个列表视图中,其中 SECTION 是第一列,每个键都会创建另一列。我以为我有这段代码,但第二列显示所有键在一起而不是分开。有人能帮我把它们分成单独的栏目吗?另外我在 AHK 方面不是很先进,所以如果你能评论标记你的步骤将不胜感激!
#SingleInstance, force
#NoEnv
FileDelete,test.ini
FileAppend,
(
[PROJECT-1]
Company=Company A
Remarks=Info about Project 1
Status=Current
Value=Some Value not needed
[PROJECT-2]
Company=Company B
Remarks=Info about Project 2
Status=Late
Values=Some Value not needed
)
,test.ini
GUI, ADD, Listview, w600, PROJECT|COMPANY|REMARKS|STATUS
IniRead, OutputVarProjects, test.ini
; MsgBox % OutputVarProjects
Loop, parse, OutputVarProjects, `n ;shows sections
{
LVDATA:=""
IniRead, OutputVarSection, test.ini, %A_LoopField%
; MsgBox % OutputVarSection
Loop, parse, OutputVarSection, `n
LVDATA .= StrSplit(A_LoopField,"=").2 ","
; MsgBox % LVDATA
LV_Add("", A_loopfield, lvdata)
}
Gui, show
Return
既然您知道键名是什么,我的建议是静态地单独读取它们中的每一个。动态读取部分的键并不能保证它们会按该顺序出现。
#SingleInstance, force
#NoEnv
FileDelete,test.ini
FileAppend,
(
[PROJECT-1]
Company=Company A
Remarks=Info about Project 1
Status=Current
Value=Some Value not needed
[PROJECT-2]
Company=Company B
Remarks=Info about Project 2
Status=Late
Values=Some Value not needed
)
,test.ini
Gui, Add, Listview, w600, PROJECT|COMPANY|REMARKS|STATUS
IniRead, projects, test.ini
Loop, parse, projects, `n ;shows sections
{
sect := A_LoopField
IniRead, keys, test.ini, % sect
IniRead, company, test.ini, % sect, Company, %A_Space%
IniRead, remarks, test.ini, % sect, Remarks, %A_Space%
IniRead, status, test.ini, % sect, Status, %A_Space%
LV_Add("", sect, company, remarks, status)
}
Loop, % LV_GetCount("Col")
LV_ModifyCol(A_Index, "autoHdr")
Gui, show
return
GuiClose:
ExitApp
我想将此 INI 文件安排到一个列表视图中,其中 SECTION 是第一列,每个键都会创建另一列。我以为我有这段代码,但第二列显示所有键在一起而不是分开。有人能帮我把它们分成单独的栏目吗?另外我在 AHK 方面不是很先进,所以如果你能评论标记你的步骤将不胜感激!
#SingleInstance, force
#NoEnv
FileDelete,test.ini
FileAppend,
(
[PROJECT-1]
Company=Company A
Remarks=Info about Project 1
Status=Current
Value=Some Value not needed
[PROJECT-2]
Company=Company B
Remarks=Info about Project 2
Status=Late
Values=Some Value not needed
)
,test.ini
GUI, ADD, Listview, w600, PROJECT|COMPANY|REMARKS|STATUS
IniRead, OutputVarProjects, test.ini
; MsgBox % OutputVarProjects
Loop, parse, OutputVarProjects, `n ;shows sections
{
LVDATA:=""
IniRead, OutputVarSection, test.ini, %A_LoopField%
; MsgBox % OutputVarSection
Loop, parse, OutputVarSection, `n
LVDATA .= StrSplit(A_LoopField,"=").2 ","
; MsgBox % LVDATA
LV_Add("", A_loopfield, lvdata)
}
Gui, show
Return
既然您知道键名是什么,我的建议是静态地单独读取它们中的每一个。动态读取部分的键并不能保证它们会按该顺序出现。
#SingleInstance, force
#NoEnv
FileDelete,test.ini
FileAppend,
(
[PROJECT-1]
Company=Company A
Remarks=Info about Project 1
Status=Current
Value=Some Value not needed
[PROJECT-2]
Company=Company B
Remarks=Info about Project 2
Status=Late
Values=Some Value not needed
)
,test.ini
Gui, Add, Listview, w600, PROJECT|COMPANY|REMARKS|STATUS
IniRead, projects, test.ini
Loop, parse, projects, `n ;shows sections
{
sect := A_LoopField
IniRead, keys, test.ini, % sect
IniRead, company, test.ini, % sect, Company, %A_Space%
IniRead, remarks, test.ini, % sect, Remarks, %A_Space%
IniRead, status, test.ini, % sect, Status, %A_Space%
LV_Add("", sect, company, remarks, status)
}
Loop, % LV_GetCount("Col")
LV_ModifyCol(A_Index, "autoHdr")
Gui, show
return
GuiClose:
ExitApp