找回密码
 加入
搜索
查看: 2814|回复: 6

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

  [复制链接]
发表于 2012-12-28 14:43:37 | 显示全部楼层 |阅读模式
本帖最后由 ycy 于 2012-12-28 17:02 编辑

请问 不规则的ini文件怎样搜索关键字,也就是字串符
如下,我想读取My Network Places的DefaultValue值
[Theme]
DisplayName=@themeui.dll,-2016

; My Documents
[CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon]
DefaultValue=%WinDir%SYSTEM32\mydocs.dll,0

; My Network Places
[CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}\DefaultIcon]
DefaultValue=%WinDir%SYSTEM32\shell32.dll,17

; Recycle Bin
[CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon]
full=%WinDir%SYSTEM32\shell32.dll,32
empty=%WinDir%SYSTEM32\shell32.dll,31
发表于 2012-12-28 15:14:07 | 显示全部楼层
说个思路供参考:
1.把文件读入到数组
2.用stringinstr()循环比较,查找
; My Network Places
得到i值(数组下标)
3.把i值加2得到
DefaultValue=%WinDir%SYSTEM32\shell32.dll,17
在数组中的下标,用stringsplit()以"="拆分,$value[2]就是需要的
%WinDir%SYSTEM32\shell32.dll,17
发表于 2012-12-28 15:29:03 | 显示全部楼层
本帖最后由 netegg 于 2012-12-28 15:56 编辑

这个怎么不规则了
[au3]$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[/au3]
发表于 2012-12-28 15:56:18 | 显示全部楼层
很规则啊。前面加分号的是注释,会被忽略的
发表于 2012-12-28 16:23:33 | 显示全部楼层
回复 4# ghl781258
lz指的不规则,应该是说读取的ini字段要判断是不是该要的,就如你所说,忽略了就确定不了了
 楼主| 发表于 2012-12-28 16:52:39 | 显示全部楼层
回复 5# netegg


    额 谢谢两位高手!我只是让ini读取段整的没思路了...
 楼主| 发表于 2012-12-28 16:56:20 | 显示全部楼层
额 还是菜鸟 思路没有那么宽..
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-24 11:16 , Processed in 0.081529 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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