ini文件合并,IniWrite 与IniWriteSection的区别[已解决]
本帖最后由 仙乃日 于 2018-9-23 11:11 编辑有2个标准的ini文件,文件名分别为1.ini 2.ini
1.ini的内容为:
A1=A
A3=3
B1=1
D1=1
D2=2
D3=32.ini的内容为:
A1=1
A2=1
B2=2
B3=3
C1=1
C2=2
C3=3现在要将2.ini的内容合并到1.ini文件中,得到更新后的1.ini文件内容为:
A1=1
A3=3
A2=1
B1=1
B2=2
B3=3
D1=1
D2=2
D3=3
C1=1
C2=2
C3=3使用以下代码可以实现:
#include <_Ini.au3>
Local $ini_SN = _IniReadSectionNames(@ScriptDir & "\2.ini")
If Not @error Then
For $i = 1 To $ini_SN
Local $ini_key = _IniReadSection(@ScriptDir & "\2.ini", $ini_SN[$i])
If Not @error Then
For $P=1 To $ini_key
IniWrite (@ScriptDir & "\1.ini", $ini_SN[$i], $ini_key[$P], $ini_key[$P] )
Next
EndIf
Next
EndIf
但如果使用IniWriteSection来,得到的1.ini文件内容就达到不到要求,相同字段名的内容会被2.ini单纯取代。
#include <_Ini.au3>
Local $ini_SN = _IniReadSectionNames(@ScriptDir & "\2.ini")
If Not @error Then
For $i = 1 To $ini_SN
Local $ini_key = _IniReadSection(@ScriptDir & "\2.ini", $ini_SN[$i])
If Not @error Then
IniWriteSection(@ScriptDir & "\1.ini", $ini_SN[$i], $ini_key)
EndIf
Next
EndIf
说明里对IniWriteSection的描述:“如果字段已存在, 数据将覆盖.”,也许就是这个意思,清除字段下的所有数据,重写新的键与值
按键来写覆盖键,按段来写覆盖段,有啥问题?
页:
[1]