xlcwxl 发表于 2009-10-29 12:05:26

列表框读取ini文件

本帖最后由 xlcwxl 于 2009-10-29 13:37 编辑

如图:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <GuiListView.au3>
Dim $dir = "user.ini"
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 264, 221, 192, 114)
$Label1 = GUICtrlCreateLabel("用户名", 8, 168, 40, 17)
$Input1 = GUICtrlCreateInput("", 48, 168, 121, 21)
$Label2 = GUICtrlCreateLabel("密码", 8, 192, 28, 17)
$Input2 = GUICtrlCreateInput("", 48, 192, 121, 21)
$Button1 = GUICtrlCreateButton("添加", 176, 168, 75, 25)
$ListView1 = GUICtrlCreateListView("", 8, 8, 242, 150)
_GUICtrlListView_SetExtendedListViewStyle($ListView1, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
; Add columns
_GUICtrlListView_AddColumn($ListView1, "用户名", 100)
_GUICtrlListView_AddColumn($ListView1, "密码", 82)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
add()
EndSwitch
WEnd

Func add()
$i = 0
While 1
$i += 1
IniReadSection($dir, "账号" & $i)
If @error Then ExitLoop
WEnd
IniWrite($dir, "账号" & $i, "账号", GUICtrlRead($Input1))
IniWrite($dir, "账号" & $i, "密码", GUICtrlRead($Input2))
EndFunc




ZEROBOYS 发表于 2009-10-29 12:14:48

ini的格式上建議修飾為...

[帳號]
01=帳號,密碼
02=帳號,密碼
03=帳號,密碼
依序到底...

水木子 发表于 2009-10-29 12:31:46

1# xlcwxl

配置文件的格式可以这样写,更方便。


账号=密码
账号=密码
账号=密码
......
......
N

netegg 发表于 2009-10-29 12:40:42

本帖最后由 netegg 于 2009-10-29 12:42 编辑

$array = iniread($file)
$i =1
do
$subarray = inireadsection($file, $array[$i])
Guicreatelistviewitem($subarray & "|" & $subarray, $hListview)
$i += 1
until $i= $array

xlcwxl 发表于 2009-10-29 12:48:29

原来ini可以这么写
感谢楼上的回答

水木子 发表于 2009-10-29 13:07:45

本帖最后由 水木子 于 2009-10-29 13:30 编辑

时间仓促,随便写的,试试!#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
#include <ListViewConstants.au3>

$dir = @ScriptDir&"\config.ini"

$Form1 = GUICreate("列表框操作", 280, 250)
$ListView1 = GUICtrlCreateListView("账号         |密码         |", 10, 10, 260, 150)
$Button1 = GUICtrlCreateButton("添加", 185, 178, 75, 65, $WS_GROUP)
$Input1 = GUICtrlCreateInput("", 60, 180, 120, 21)
$Input2 = GUICtrlCreateInput("", 60, 220, 120, 21)
$Label1 = GUICtrlCreateLabel("账号:", 20, 183, 36, 17)
$Label2 = GUICtrlCreateLabel("密码:", 20, 223, 36, 17)
GUISetState(@SW_SHOW)
Read()

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1
                        tian()
        EndSwitch
WEnd

Func Read()
        $z = 0
        _GUICtrlListView_DeleteAllItems($ListView1)
        $read = IniReadSection($dir,"config")
        If Not @error Then
                For $i = 1 To $read
                        GUICtrlCreateListViewItem($read[$i], $ListView1)
                        _GUICtrlListView_AddSubItem($ListView1, $z, $read[$i], 1, $z+1)
                        $z += 1               
                Next
        EndIf
EndFunc

Func tian()
        $a = GUICtrlRead($Input1)
        $b = GUICtrlRead($Input2)
       
        If $a <> "" And $b <> "" Then
                IniWrite($dir,"config",$a,$b)
                MsgBox(0,"提示"," 账号: "&$a&" 密码: "&$b&" 保存成功 ")
                Read()
                GUICtrlSetData($Input1,"")
                GUICtrlSetData($Input2,"")
        EndIf       
EndFunc       

xlcwxl 发表于 2009-10-29 13:20:50

一闪就没了

水木子 发表于 2009-10-29 13:29:12

本帖最后由 水木子 于 2009-10-29 13:31 编辑

7# xlcwxl

上面6楼代码已经做了修改,再试试呢?

kn007 发表于 2009-10-29 15:05:18

不错啊,水木子

xz00311 发表于 2009-10-29 15:20:37

正需要这个

水木子 发表于 2009-10-29 15:49:52

本帖最后由 水木子 于 2009-10-29 15:59 编辑

不错啊,水木子
kn007 发表于 2009-10-29 15:05 http://www.autoitx.com/images/common/back.gif

呵呵! 哪里,哪里!   “只是不断的帮助他人,才能得到他人的帮助”
我还得多向大家学习呢!:face (27):

水木子 发表于 2009-10-29 17:42:24

抽空整理了一下,感觉这样写更合理。
尤其针对数据多,并再新增数据的时候,不用重新刷新。#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
#include <ListViewConstants.au3>

$dir = @ScriptDir&"\config.ini"

$Form1 = GUICreate("列表框操作", 280, 270)
$ListView1 = GUICtrlCreateListView("账号         |密码         |", 10, 10, 260, 150)
$Button1 = GUICtrlCreateButton("添加", 185, 178, 75, 25, $WS_GROUP)
$Input1 = GUICtrlCreateInput("", 60, 180, 120, 21)
$Input2 = GUICtrlCreateInput("", 60, 220, 120, 21)
$Label1 = GUICtrlCreateLabel("账号:", 20, 183, 36, 17)
$Label2 = GUICtrlCreateLabel("密码:", 20, 223, 36, 17)
$Label3 = GUICtrlCreateLabel("数据", 200, 223, 36, 17)
$Label4 = GUICtrlCreateLabel("0", 230, 223, 36, 17)
GUISetState(@SW_SHOW)
Read()

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1
                        tian()
        EndSwitch
WEnd

Func Read()
        $z = 0
        _GUICtrlListView_DeleteAllItems($ListView1)
        $read = IniReadSection($dir,"config")
        If Not @error Then
                For $i = 1 To $read
                        GUICtrlCreateListViewItem($read[$i], $ListView1)
                        _GUICtrlListView_AddSubItem($ListView1, $z, $read[$i], 1, $z+1)
                        GUICtrlSetData($Label4,$z+1)
                        $z += 1               
                Next
        EndIf
EndFunc

Func tian()
        $z = GUICtrlRead($Label4)
        $a = GUICtrlRead($Input1)
        $b = GUICtrlRead($Input2)       
        If $a <> "" And $b <> "" Then
                IniWrite($dir,"config",$a,$b)
                GUICtrlCreateListViewItem($a, $ListView1)               
                _GUICtrlListView_AddSubItem($ListView1, $z, $b, 1, $z+1)
                MsgBox(0,"提示"," 账号: "&$a&" 密码: "&$b&" 保存成功 ")               
                GUICtrlSetData($Input1,"")
                GUICtrlSetData($Input2,"")
                GUICtrlSetData($Label4,$z+1)
        EndIf       
EndFunc       

foolbyrd 发表于 2009-11-1 15:16:12

学习了,感谢大家

lmx860512 发表于 2009-11-4 08:24:47

做个记号 以后用到 :face (22):

81206954 发表于 2009-12-18 22:52:45

收藏学习~~~~~~~~
页: [1] 2
查看完整版本: 列表框读取ini文件