找回密码
 加入
搜索
查看: 1455|回复: 7

怎么样分别读取INI内的数据

  [复制链接]
发表于 2009-12-7 20:43:41 | 显示全部楼层 |阅读模式
本帖最后由 gogo023 于 2009-12-9 18:41 编辑
$IniSectionName = IniReadSectionNames(@ScriptDir & "\FBConfig.ini")
If @error Then
        Exit
Else
        $IniSectionValue = IniReadSection(@ScriptDir & "\FBConfig.ini", $IniSectionName[1])
        If @error Then
                exit
        Else
                For $Var = 1 To $IniSectionValue[0][0]
                        $ReturnValue = $IniSectionValue[$Var][0]
                        $TitalValue  = $IniSectionValue[$Var][1]   
                        $IniFileRead = IniReadSection(@ScriptDir & "\FBConfig.ini", "分辨率设置")                        
                        If @error Then
                                Exit
                        Else
                                For $Z = 1 To $IniFileRead[0][0]
                                        If $IniFileRead[$Z][0] = $ReturnValue Then
                                                $Desktop_Refresh  = $IniFileRead[$Z][1]
                                                        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:33:08 | 显示全部楼层
本帖最后由 水木子 于 2009-12-7 22:35 编辑

ini配置文件可以这样写更方便。
[机器范围]
1=2-67|1280*768,32,75
2=68-100|1024*768,32,75
3= ……|……
…………
N

评分

参与人数 1金钱 +10 收起 理由
afan + 10

查看全部评分

 楼主| 发表于 2009-12-7 23:09:42 | 显示全部楼层
回复 2# 水木子
不方便,我还可以这样改:
1=2-5,5-20,21,67
。。。
。。。
发表于 2009-12-8 14:54:14 | 显示全部楼层
回复 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        

评分

参与人数 1金钱 +15 收起 理由
afan + 15

查看全部评分

 楼主| 发表于 2009-12-8 16:04:52 | 显示全部楼层
楼上的并不是我想要的结果。
发表于 2009-12-8 16:37:10 | 显示全部楼层
本帖最后由 wisly 于 2009-12-8 16:40 编辑
$aList = IniReadSection('xxx.ini' ,'机器范围')
$iComputer = InputBox('', '请输入机器名')
$Desktop_Refresh = 'not found'
for $i = 1 to $aList[0][0]
        $aRange = StringRegExp($aList[$i][1], '\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[1]) Or $iComputer > Number($aMinMax[2]) Then ContinueLoop
                Else
                        If $iComputer <> $aRange[$j] Then ContinueLoop
                EndIf
                $Desktop_Refresh = IniRead('xxx.ini', '分辨率设置', $aList[$i][0], 'not found')
                exitloop
        Next
Next
ConsoleWrite('result='&$Desktop_Refresh&@LF)
exit

评分

参与人数 1金钱 +15 收起 理由
afan + 15

查看全部评分

发表于 2009-12-8 23:29:29 | 显示全部楼层
这么多老师回答了你的问题了
 楼主| 发表于 2009-12-9 18:40:39 | 显示全部楼层
多谢6楼的回复。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2025-1-12 12:05 , Processed in 0.141984 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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