schoolwenxue 发表于 2012-2-12 19:36:20

GUICtrlRead 如何取list的所有数值

$List1 = GUICtrlCreateList("", 14, 236, 475, 134)
        $i = 1
while 1
$key = regenumkey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", $i)
if @error then exitloop
$softname=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"&$key,"DisplayName")
If @error<>-1 Then
If StringLeft($softname, 5) = "Adobe"Or StringLeft($softname, 7) = "Windows" Then
GUICtrlSetData(-1,$softname)
EndIf
EndIf
$i = $i +1
wend
我有一个Save的botton,想把list的结果保存到txt.
所以用下面的代码,结果悲剧了,只保存了光标当前选中的一条记录,其他的记录都没有保存。
求解!FileWrite(@DesktopDir &"\Report.txt,GUICtrlRead($List1))

afan 发表于 2012-2-12 19:42:02

List 数据是你自己设置的,为何要重新读呢? 设置时同时储存到一个变量不就行了

bdancerlc 发表于 2012-2-13 11:36:20

Afan 正解...

nmgwddj 发表于 2012-2-13 13:24:15

回复 1# schoolwenxue


    先用_GUICtrlListView_GetItemCount获取项目总数。

然后使用for循环从1到总数遍历guictrlread(guictrlread(listview控件ID))读取每一行数据用stringsplit将读取到的数据用“|”隔开,使用filewriteline写入到记事本文件中。

schoolwenxue 发表于 2012-2-13 17:02:08

明白了,我再试试

schoolwenxue 发表于 2012-2-18 12:29:29


Func _save()
        FileWriteLine(@DesktopDir & "\Temp.csv","SoftwareName")
        $count = _GUICtrlListBox_GetCount($List1)
        For $i = 0 To $count Step +1
                $text = _GUICtrlListBox_GetText($List1,$i)
                FileWriteLine(@DesktopDir & "\Temp.csv",$text)
        Next
        MsgBox(64,"Tips","文件已保存到桌面上。")
        Exit
EndFunc

andersonljw 发表于 2012-2-18 16:19:16

XIANGAfan 学习。。。

andersonljw 发表于 2012-2-18 16:19:22

XIANGAfan 学习。。。
页: [1]
查看完整版本: GUICtrlRead 如何取list的所有数值