本帖最后由 仙乃日 于 2018-9-23 11:11 编辑
有2个标准的ini文件,文件名分别为1.ini 2.ini
1.ini的内容为:[AA]
A1=A
A3=3
[BB]
B1=1
[DD]
D1=1
D2=2
D3=3
2.ini的内容为:[AA]
A1=1
A2=1
[BB]
B2=2
B3=3
[CC]
C1=1
C2=2
C3=3
现在要将2.ini的内容合并到1.ini文件中,得到更新后的1.ini文件内容为:[AA]
A1=1
A3=3
A2=1
[BB]
B1=1
B2=2
B3=3
[DD]
D1=1
D2=2
D3=3
[CC]
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[0]
Local $ini_key = _IniReadSection(@ScriptDir & "\2.ini", $ini_SN[$i])
If Not @error Then
For $P=1 To $ini_key[0][0]
IniWrite (@ScriptDir & "\1.ini", $ini_SN[$i], $ini_key[$P][0], $ini_key[$P][1] )
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[0]
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
|