仙乃日 发表于 2017-3-3 16:34:15

ini文件如何依据给定的关键字与值反向获取字段名呢?[已解决]

本帖最后由 仙乃日 于 2017-3-4 09:49 编辑


例如有ini文件如下:
日期=20170302
标本号=01

日期=20170302
标本号=02

日期=20170302
标本号=03

日期=20170302
标本号=04如果事先指定
日期=20170302
标本号=03
这2条,怎么反向获取其所属的字段名呢?

1361739590 发表于 2017-3-3 17:02:09

只会正向找,去每个 字段名 下面 查找有无符合的字段。

fenhanxue 发表于 2017-3-3 17:40:34

貌似只能正向遍历一遍?

Alam 发表于 2017-3-3 17:53:35

不会正则的话
IniReadSectionNames
IniReadSection
一个个比对了.

heroxianf 发表于 2017-3-3 22:00:42

先全部读取到数组然后 在循环找一下了

仙乃日 发表于 2017-3-4 09:51:01

本相想用正则试试,但是自己测试不理想。用来老办法啦Local $Ts = TimerInit()
Local $ini_file=@ScriptDir & '\生化2.ini'
Local $secName=IniReadSectionNames($ini_file)
If Not @error Then
                For $i = 1 To $secName
                        Local $akey_V=IniRead($ini_file,$secName[$i],"日期","A")
                        Local $bkey_V=IniRead($ini_file,$secName[$i],"标本号","A")
                        If $akey_V="20170302" And $bkey_V="04" Then
                        MsgBox(0, TimerDiff($Ts), "Section: " & $secName[$i])
                        ExitLoop
                        EndIf
                Next
EndIf

邪恶海盗 发表于 2017-3-4 16:49:25

回复 1# 仙乃日


    我X,此仙乃日是否彼仙乃日???

仙乃日 发表于 2017-3-4 17:03:26

回复仙乃日


    我X,此仙乃日是否彼仙乃日???
邪恶海盗 发表于 2017-3-4 16:49 http://www.autoitx.com/images/common/back.gif

啥意思??

chzj589 发表于 2017-3-4 18:11:13

回复 8# 仙乃日
学习了{:face (327):}

zghwelcome 发表于 2017-3-9 23:16:29

本帖最后由 zghwelcome 于 2017-3-9 23:17 编辑

Local $ini_file=@ScriptDir & '\生化2.ini'
$open = FileOpen($ini_file,FileGetEncoding($ini_file))
$read = FileRead($open)
FileClose($open)
Local $secName= ''
$secName_reg = StringRegExp($read,'\[([^\[\]]*?)\][^\[\]]*?标本号=03[^\[\]]*?日期=20170302',1)
If Not @error Then
        $secName = $secName_reg
Else
        $secName_reg = StringRegExp($read,'\[([^\[\]]+?)\][^\[\]]*?日期=20170302[^\[\]]*?标本号=03',1)
        If Not @error Then $secName = $secName_reg
EndIf
MsgBox(0,0,$secName)P版能给出更优美的正则
页: [1]
查看完整版本: ini文件如何依据给定的关键字与值反向获取字段名呢?[已解决]