找回密码
 加入
搜索
查看: 7498|回复: 17

[AU3基础] 如何读取INI文件里的数值到ListView列表显示

 火.. [复制链接]
发表于 2016-12-9 21:08:10 | 显示全部楼层 |阅读模式
本帖最后由 dnvplj 于 2016-12-11 20:34 编辑

请问各位朋友,如何将INI文件里的数值读取到ListView列表显示(见下图),谢谢了。
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ScreenCapture.au3>
#include <GuiListView.au3>


$Form1 = GUICreate('', 670, 450, -1, -1)
$ListView1 = GUICtrlCreateListView('', 19, 19, 436, 310, $WS_BORDER, _
                BitOR($WS_EX_CLIENTEDGE, $LVS_EX_CHECKBOXES, $LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES))

$Button1 = GUICtrlCreateButton('配置文件', 520, 200, 70, 25)
$Button2 = GUICtrlCreateButton('退    出', 520, 260, 70, 25)

_GUICtrlListView_AddColumn($ListView1, '序号', 50)
_GUICtrlListView_AddColumn($ListView1, '软件名称', 180)
_GUICtrlListView_AddColumn($ListView1, '说明', 200)
GUISetState(@SW_SHOW, $Form1)

Local $nMsg
While 1
        Switch GUIGetMsg()
                Case -3
                        Exit

                Case $Button1
                        _Read()
                        
                Case $Button2
                        Exit
                        
        EndSwitch
WEnd

Func _Read()
        
        Local $IniFile = @ScriptDir & '\Soft.ini'
        Local $aIni = IniReadSectionNames($IniFile)
        If @error Then Exit MsgBox(4096, "", "错误, 读取INI文件失败.")
        Local $ii, $jj, $var
        For $jj = 1 To $aIni[0]
                $var = IniReadSection($IniFile, $aIni[$jj])
                For $ii = 1 To $var[0][0]
                        Local $iItemIndexes = _GUICtrlListView_AddItem($ListView1, $jj, 2)
                        _GUICtrlListView_AddSubItem($ListView1, $iItemIndexes, $var[$ii][0], 1, 1)
                        _GUICtrlListView_AddSubItem($ListView1, $iItemIndexes, $var[$ii][1], 2, 1)
                Next
        Next
EndFunc   ;==>_Read
配置文件
[1]
1-1.Namesm="珊瑚浏览器"
1-1.Softwa="浏览器\珊瑚浏览器\1.exe"
1-1.Softsm="实用、绿色、安全"

[2]
2-1.Namesm="福昕阅读器"
2-1.Namesm="阅读器\福昕阅读器\2.exe"
2-1.Softsm="文档阅读器和打印器"

[3]
3-1.Namesm="搜狗输入法"
3-1.Softsm="输入法\搜狗输入法\3.exe"
3-1.Softsm="爱不释手的输入法"

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-12-9 22:53:48 | 显示全部楼层
最后三个_GUICtrlListView_AddSubItem删除,内循环也删除,用代替
GUICtrlCreateListViewItem($jj&"|"&$var[1][1]&"|"&$var[3][1],$ListView1)

评分

参与人数 1金钱 +10 收起 理由
dnvplj + 10 乐于助人

查看全部评分

 楼主| 发表于 2016-12-10 10:11:46 | 显示全部楼层
本帖最后由 dnvplj 于 2016-12-10 10:14 编辑

回复 2# q410225

q410225朋友您好,感谢你的回复,配置文件里的“双引号”保留,界面显示的“双引号”能去掉吗(如下图)?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-12-10 10:25:05 | 显示全部楼层
本帖最后由 q410225 于 2016-12-10 16:36 编辑

回复 3# dnvplj

把ini里的双引号去掉不就行了吗

要不然用

StringReplace(chr(34)&"福昕阅读器"&chr(34),'"',"")

StringSplit(chr(34)&"福昕阅读器"&chr(34),'"');//$aArray[2]
发表于 2016-12-10 10:29:10 | 显示全部楼层
留下脚印,之后学习学习
发表于 2016-12-10 13:50:15 | 显示全部楼层
本帖最后由 chzj589 于 2016-12-10 16:22 编辑
请问各位朋友,如何将INI文件里的数值读取到ListView列表显示(见下图),谢谢了。

配置文件
dnvplj 发表于 2016-12-9 21:08


在写安装器吧,搜索相关的软件安装,查看配置文件的写法,用法。



是这效果吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2016-12-11 20:13:06 | 显示全部楼层
本帖最后由 dnvplj 于 2016-12-11 20:14 编辑

回复 4# q410225

请问朋友:如果增加多个不确定的“关键字”如何处理?
[1]
1-1.Namesm="珊瑚浏览器"
1-1.Softwa="浏览器\珊瑚浏览器\1.exe"
1-1.Softsm="实用、绿色、安全"

1-2.Namesm="腾讯QQ"
1-2.Softwa="聊天工具\腾讯QQ\1.exe"
1-2.Softsm="实用、绿色、安全"

[2]
2-1.Namesm="福昕阅读器"
2-1.Namesm="阅读器\福昕阅读器\2.exe"
2-1.Softsm="文档阅读器和打印器"

[3]
3-1.Namesm="搜狗输入法"
3-1.Softsm="输入法\搜狗输入法\3.exe"
3-1.Softsm="爱不释手的输入法"

3-2.Namesm="五笔输入法"
3-2.Softsm="输入法\五笔输入法\3.exe"
3-2.Softsm="老款的输入法"

3-3.Namesm="迅雷急速版"
3-3.Softsm="网络下载\迅雷急速版\3.exe"
3-3.Softsm="常用下载工具"
发表于 2016-12-11 20:53:41 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2016-12-11 21:20:41 | 显示全部楼层
回复 8# chzj589
朋友,PS的吧,怎么没有代码?
发表于 2016-12-12 08:30:49 | 显示全部楼层
回复  chzj589
朋友,PS的吧,怎么没有代码?
dnvplj 发表于 2016-12-11 21:20

你说是吗?



代码在一楼,读取修改一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2016-12-12 08:44:01 | 显示全部楼层
回复 10# chzj589
朋友对不起,是我错怪你了,是真的,担按7楼的配置文件只能读出3行。
发表于 2016-12-12 08:44:04 | 显示全部楼层
回复  q410225

请问朋友:如果增加多个不确定的“关键字”如何处理?
dnvplj 发表于 2016-12-11 20:13


这样的配置文件INI是读取不出来的
[1]
1-1.Namesm="珊瑚浏览器"
1-1.Softwa="浏览器\珊瑚浏览器\1.exe"
1-1.Softsm="实用、绿色、安全"

1-2.Namesm="腾讯QQ"
1-2.Softwa="聊天工具\腾讯QQ\1.exe"
1-2.Softsm="实用、绿色、安全"

[2]
2-1.Namesm="福昕阅读器"
2-1.Namesm="阅读器\福昕阅读器\2.exe"
2-1.Softsm="文档阅读器和打印器"

[3]
3-1.Namesm="搜狗输入法"
3-1.Softsm="输入法\搜狗输入法\3.exe"
3-1.Softsm="爱不释手的输入法"

3-2.Namesm="五笔输入法"
3-2.Softsm="输入法\五笔输入法\3.exe"
3-2.Softsm="老款的输入法"

3-3.Namesm="迅雷急速版"
3-3.Softsm="网络下载\迅雷急速版\3.exe"
3-3.Softsm="常用下载工具"
要修改一下
发表于 2016-12-12 08:46:25 | 显示全部楼层
回复 11# dnvplj

[1]
1-1.Namesm="珊瑚浏览器"
1-1.Softwa="浏览器\珊瑚浏览器\1.exe"
1-1.Softsm="实用、绿色、安全"
[2]
1-2.Namesm="腾讯QQ"
1-2.Softwa="聊天工具\腾讯QQ\1.exe"
1-2.Softsm="实用、绿色、安全"

[3]
2-1.Namesm="福昕阅读器"
2-1.Namesm="阅读器\福昕阅读器\2.exe"
2-1.Softsm="文档阅读器和打印器"

[4]
3-1.Namesm="搜狗输入法"
3-1.Softsm="输入法\搜狗输入法\3.exe"
3-1.Softsm="爱不释手的输入法"
[5]
3-2.Namesm="五笔输入法"
3-2.Softsm="输入法\五笔输入法\3.exe"
3-2.Softsm="老款的输入法"
[6]
3-3.Namesm="迅雷急速版"
3-3.Softsm="网络下载\迅雷急速版\3.exe"
3-3.Softsm="常用下载工具"
 楼主| 发表于 2016-12-12 09:14:36 | 显示全部楼层
本帖最后由 dnvplj 于 2016-12-12 09:19 编辑

能上个代码吗?很难吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-12-12 10:05:35 | 显示全部楼层
本帖最后由 chzj589 于 2016-12-12 10:09 编辑
能上个代码吗?很难吗?
dnvplj 发表于 2016-12-12 09:14

你说呢?
多看帮助文件,了解GUICtrlCreateListView控件的使用
_GUICtrlListView_AddSubItem
添加列表视图子项.


#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>

Example()

Func Example()
    Local $hImage, $idListview

    ; 创建 GUI
    GUICreate("添加列表视图子项", 400, 300)
    $idListview = GUICtrlCreateListView("", 2, 2, 394, 268, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
    GUISetState(@SW_SHOW)

    ; 加载图像
    $hImage = _GUIImageList_Create()
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap(GUICtrlGetHandle($idListview), 0xFF0000, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap(GUICtrlGetHandle($idListview), 0x00FF00, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap(GUICtrlGetHandle($idListview), 0x0000FF, 16, 16))
    _GUICtrlListView_SetImageList($idListview, $hImage, 1)

    ; 添加列
    _GUICtrlListView_InsertColumn($idListview, 0, "列 1", 100)
    _GUICtrlListView_InsertColumn($idListview, 1, "列 2", 100)
    _GUICtrlListView_InsertColumn($idListview, 2, "列 3", 100)

    ; 添加项目
    _GUICtrlListView_AddItem($idListview, "行 1: 列 1", 0)
    _GUICtrlListView_AddSubItem($idListview, 0, "行 1: 列 2", 1, 1)
    _GUICtrlListView_AddSubItem($idListview, 0, "行 1: 列 3", 2, 2)
    _GUICtrlListView_AddItem($idListview, "行 2: 列 1", 1)
    _GUICtrlListView_AddSubItem($idListview, 1, "行 2: 列 2", 1, 2)
    _GUICtrlListView_AddItem($idListview, "行 3: 列 1", 2)

    ; 循环到用户退出.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>Example
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-21 22:14 , Processed in 0.085761 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表