2017-07-19 63 views
1

我想将此INI文件排列成列表视图,其中SECTION是第一列,每个键都创建另一列。我以为我用这段代码做了它,但第二列显示了所有的键,而不是分开的。有人可以帮助我将它们分成单独的列。此外,我在AHK中不是很先进,所以如果你能评论标志,你的步骤将受到高度赞赏!我该如何将这个INI文件放入Autohotkey的列表视图中

#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 

回答

1

既然你知道键名是什么,我的建议是静态地读取每个人的名字。动态阅读部分的钥匙并不能保证他们将按照该顺序排列。

#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 
+0

这样做!谢谢 –

+0

太棒了!请标记为已接受,如果你可以:) – fischgeek

+0

它花了一段时间,但我的声誉已经成长。我已upvoted和检查。 –

相关问题