列表框读取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
ini的格式上建議修飾為...
[帳號]
01=帳號,密碼
02=帳號,密碼
03=帳號,密碼
依序到底... 1# xlcwxl
配置文件的格式可以这样写,更方便。
账号=密码
账号=密码
账号=密码
......
......
N 本帖最后由 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 原来ini可以这么写
感谢楼上的回答 本帖最后由 水木子 于 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 一闪就没了 本帖最后由 水木子 于 2009-10-29 13:31 编辑
7# xlcwxl
上面6楼代码已经做了修改,再试试呢? 不错啊,水木子 正需要这个 本帖最后由 水木子 于 2009-10-29 15:59 编辑
不错啊,水木子
kn007 发表于 2009-10-29 15:05 http://www.autoitx.com/images/common/back.gif
呵呵! 哪里,哪里! “只是不断的帮助他人,才能得到他人的帮助”
我还得多向大家学习呢!:face (27): 抽空整理了一下,感觉这样写更合理。
尤其针对数据多,并再新增数据的时候,不用重新刷新。#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 学习了,感谢大家 做个记号 以后用到 :face (22): 收藏学习~~~~~~~~
页:
[1]
2