ycy 发表于 2012-12-28 14:43:37

[已解决]请问 不规则的ini文件怎样搜索关键字

本帖最后由 ycy 于 2012-12-28 17:02 编辑

请问 不规则的ini文件怎样搜索关键字,也就是字串符
如下,我想读取My Network Places的DefaultValue值

DisplayName=@themeui.dll,-2016

; My Documents

DefaultValue=%WinDir%SYSTEM32\mydocs.dll,0

; My Network Places

DefaultValue=%WinDir%SYSTEM32\shell32.dll,17

; Recycle Bin

full=%WinDir%SYSTEM32\shell32.dll,32
empty=%WinDir%SYSTEM32\shell32.dll,31

annybaby 发表于 2012-12-28 15:14:07

说个思路供参考:
1.把文件读入到数组
2.用stringinstr()循环比较,查找
; My Network Places
得到i值(数组下标)
3.把i值加2得到
DefaultValue=%WinDir%SYSTEM32\shell32.dll,17
在数组中的下标,用stringsplit()以"="拆分,$value就是需要的
%WinDir%SYSTEM32\shell32.dll,17

netegg 发表于 2012-12-28 15:29:03

本帖最后由 netegg 于 2012-12-28 15:56 编辑

这个怎么不规则了
$i = 1
While 1
        Local $b = FileReadLine('1.ini', $i)
        If @error Then ExitLoop
        If StringInStr($b, 'My Network Places') Then
                $line = FileReadLine('1.ini', $i + 1)
                ConsoleWrite(IniRead('1.ini', StringMid($line, StringInStr($line, '[') + 1, StringInStr($line, ']') - 2), 'DefaultValue', ''))
        EndIf
        $i += 1
WEnd

ghl781258 发表于 2012-12-28 15:56:18

很规则啊。前面加分号的是注释,会被忽略的

netegg 发表于 2012-12-28 16:23:33

回复 4# ghl781258
lz指的不规则,应该是说读取的ini字段要判断是不是该要的,就如你所说,忽略了就确定不了了

ycy 发表于 2012-12-28 16:52:39

回复 5# netegg


    额 谢谢两位高手!我只是让ini读取段整的没思路了...

ycy 发表于 2012-12-28 16:56:20

额 还是菜鸟 思路没有那么宽..
页: [1]
查看完整版本: [已解决]请问 不规则的ini文件怎样搜索关键字