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

[网络通信] ini 删除问题【解决】

  [复制链接]
发表于 2014-7-16 15:36:49 | 显示全部楼层 |阅读模式
本帖最后由 ap112 于 2015-3-5 16:54 编辑

ini配置如下:
[A]
a=a
b=b
c=c

[a]
aa=aa
bb=bb
cc=cc

[cc]
aaa=aaa
bbb=bbb

[d]
asas=asas
aass=aass

在这个ini中,一些关键字是字段名,例如a是[A]的关键字,也是一个字段名:我想删除[A],[A]中的关键字若是字段名,也全部删除,删除的字段名下的关键字若是字段名也删除,依次下去,直到关键字不是字段名为止;
上面的ini  若是我删除[A],那么[a]和[cc]都删除了
发表于 2014-7-17 13:41:39 | 显示全部楼层
楼主 太过急躁 没表达完整想要表达的意思 我感觉
 楼主| 发表于 2014-7-17 16:05:15 | 显示全部楼层
回复 2# dncsk

就是我的一个in文件,里面存在很多字段名,当然每个字段名下都有关键字和值;
由于ini特殊,这些关键字名称会和一些字段名相同;
假如我要删除一个字段名 A  的所有数据,该字段名 A 下关键字 B 可能是另外一个字段名,我不仅想删除字段名 A 的数据, 还要删除 B ,若是 B 的关键字 C 也是字段名,  也要删除C   , 就这样一直持续下去,直到我删除的字段名 X 数据,在 X 下面所有关键字 Y 等不是任何一个字段名。
发表于 2014-7-17 17:16:41 | 显示全部楼层
ini* 函数是不区分大小写的。因此,一楼的示例使用“[A]”及“[a]”不合适。

评分

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

查看全部评分

 楼主| 发表于 2014-7-18 13:00:34 | 显示全部楼层
ini* 函数是不区分大小写的。因此,一楼的示例使用“[A]”及“[a]”不合适。
afan 发表于 2014-7-17 17:16


您好,我只是举一个例子,实际不是这样的,
发表于 2014-7-18 16:02:41 | 显示全部楼层
_IniDeleteNested(@ScriptDir & '\1.ini', 'A')

Func _IniDeleteNested($fIni, $section)
        ;删除字段,同时删除嵌套的其它字段
        __CKIni($fIni, $section)
        IniDelete($fIni, $section)
EndFunc   ;==>_IniDeleteNested

Func __CKIni($fIni, $section)
        Local $a0 = IniReadSection($fIni, $section)
        If @error Then Return SetError(1)
        For $i = 1 To $a0[0][0]
                __CKIni($fIni, $a0[$i][0])
                If Not @error Then IniDelete($fIni, $a0[$i][0])
        Next
EndFunc   ;==>__CKIni
发表于 2014-7-20 02:11:35 | 显示全部楼层
回复 6# afan

学习了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-29 09:34 , Processed in 0.091455 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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