ini文件如何依据给定的关键字与值反向获取字段名呢?[已解决]
本帖最后由 仙乃日 于 2017-3-4 09:49 编辑例如有ini文件如下:
日期=20170302
标本号=01
日期=20170302
标本号=02
日期=20170302
标本号=03
日期=20170302
标本号=04如果事先指定
日期=20170302
标本号=03
这2条,怎么反向获取其所属的字段名呢? 只会正向找,去每个 字段名 下面 查找有无符合的字段。 貌似只能正向遍历一遍? 不会正则的话
IniReadSectionNames
IniReadSection
一个个比对了. 先全部读取到数组然后 在循环找一下了 本相想用正则试试,但是自己测试不理想。用来老办法啦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 回复 1# 仙乃日
我X,此仙乃日是否彼仙乃日??? 回复仙乃日
我X,此仙乃日是否彼仙乃日???
邪恶海盗 发表于 2017-3-4 16:49 http://www.autoitx.com/images/common/back.gif
啥意思?? 回复 8# 仙乃日
学习了{:face (327):} 本帖最后由 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]