怎么样分别读取INI内的数据
本帖最后由 gogo023 于 2009-12-9 18:41 编辑$IniSectionName = IniReadSectionNames(@ScriptDir & "\FBConfig.ini")
If @error Then
Exit
Else
$IniSectionValue = IniReadSection(@ScriptDir & "\FBConfig.ini", $IniSectionName)
If @error Then
exit
Else
For $Var = 1 To $IniSectionValue
$ReturnValue = $IniSectionValue[$Var]
$TitalValue= $IniSectionValue[$Var]
$IniFileRead = IniReadSection(@ScriptDir & "\FBConfig.ini", "分辨率设置")
If @error Then
Exit
Else
For $Z = 1 To $IniFileRead
If $IniFileRead[$Z] = $ReturnValue Then
$Desktop_Refresh= $IniFileRead[$Z]
MsgBox(0, $TitalValue, $Desktop_Refresh)
EndIf
Next
EndIf
Next
EndIf
EndIf ; FBConfig.ini
[机器范围]
1=2-67
2=68-100
[分辨率设置]
1=1280*768,32,75
2=1024*768,32,75
以上是部分代码,
根据机器名,读取“机器范围”内的编号,再读取“分辨率设置”内的值。
当机器编号小于或等于67时,只读2-67和1028*768,32,75。
当机器编号大于或等于68时,只读68-100和1027*768,32,75。
当然不只这两种,后面还有3=。。。。4=。。。, 以此类推。
这段代码,要怎么改。 本帖最后由 水木子 于 2009-12-7 22:35 编辑
ini配置文件可以这样写更方便。
[机器范围]
1=2-67|1280*768,32,75
2=68-100|1024*768,32,75
3= ……|……
…………
N 回复 2# 水木子
不方便,我还可以这样改:
1=2-5,5-20,21,67
。。。
。。。 回复 3# gogo023 #include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("Form1", 322, 197, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
$Input1 = GUICtrlCreateInput("Input1", 72, 40, 121, 21)
$Label1 = GUICtrlCreateLabel("输入机器代码", 72, 16, 76, 17)
$Input2 = GUICtrlCreateInput("Input2", 120, 104, 89, 21)
$Label2 = GUICtrlCreateLabel("分辨率", 72, 104, 40, 17)
$Button = GUICtrlCreateButton("测试按钮", 200, 38)
GUICtrlSetOnEvent(-1, "Software_Sum")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
Sleep(100)
WEnd
func Form1Close()
Exit
EndFunc
func Software_Sum()
Local $Data = GUICtrlRead ( $Input1 )
If $Data <= 67 Then
GUICtrlSetData ( $Input2, IniRead ( @ScriptDir & "\FBConfig.ini", "分辨率设置", "2", "" ) )
ElseIf $Data >= 68 Then
GUICtrlSetData ( $Input2, IniRead ( @ScriptDir & "\FBConfig.ini", "分辨率设置", "1", "" ) )
EndIf
EndFunc 楼上的并不是我想要的结果。 本帖最后由 wisly 于 2009-12-8 16:40 编辑
$aList = IniReadSection('xxx.ini' ,'机器范围')
$iComputer = InputBox('', '请输入机器名')
$Desktop_Refresh = 'not found'
for $i = 1 to $aList
$aRange = StringRegExp($aList[$i], '\d+-\d+|\d+', 3)
For $j = 0 to UBound($aRange) - 1
If StringInStr($aRange[$j], '-') > 0 Then
$aMinMax = StringSplit($aRange[$j], '-')
If $iComputer < Number($aMinMax) Or $iComputer > Number($aMinMax) Then ContinueLoop
Else
If $iComputer <> $aRange[$j] Then ContinueLoop
EndIf
$Desktop_Refresh = IniRead('xxx.ini', '分辨率设置', $aList[$i], 'not found')
exitloop
Next
Next
ConsoleWrite('result='&$Desktop_Refresh&@LF)
exit
这么多老师回答了你的问题了 多谢6楼的回复。。:face (36):
页:
[1]