将每个数组元素与ini文件的数据对比,如果不存在则写入,代码有问题,求修正[已解决]
本帖最后由 tsys 于 2011-12-31 21:42 编辑本意是想将$a的每一个元素与ini的数据对比一便,如果不同则再最后的数据写入,反之则不写入。
以下的代码与所要结果相差甚远,麻烦论坛兄弟帮修改下 谢谢!#include<array.au3>
If Not FileExists("123.ini") Then
For $i = 0 To 10
IniWrite("123.ini","config",$i,$i)
Next
EndIf
Local $a = ['a','2','c','d','f','6','w','8']
Local $b = IniReadSection("123.ini","config")
$p = 0
For $i = 0 To UBound($a)-1
For $j = 0 To $b
If $a[$i] <> $b[$j] Then
IniWrite("123.ini","config",$b+$p,$a[$i])
$p+=1
Else
ExitLoop
EndIf
Next
Next
“将$a的每一个元素与ini的数据对比一便” 对比什么?字段?关键字?还是值?
“如果不同则再最后的数据写入” 写什么? 回复 2# afan
呵呵,我没说说明白,对比的是值,如果ini文件中存在与数组元素相同的值,则不向ini文件写入值,不存在则写入 回复 3# tsys
说说要得到的结果不就清楚了
0=0
1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
10=10
11=a
12=c
13=d
14=f
15=w这样的? 回复 4# afan
呵呵,是的 Local $ini = @ScriptDir & '\123.ini'
If Not FileExists($ini) Then
For $i = 0 To 10
IniWrite($ini, 'config', $i, $i)
Next
EndIf
Local $a = ['a', '2', 'c', 'd', 'f', '6', 'w', '8']
Local $b = IniReadSection($ini, 'config')
For $i = 1 To $b
Assign('~' & $b[$i], 0)
Next
Local $p = 0
For $i = 0 To UBound($a) - 1
If Not IsDeclared('~' & $a[$i]) Then
IniWrite($ini, 'config', $b + $p, $a[$i])
$p += 1
Assign('~' & $a[$i], 0)
EndIf
Next A版的方法有些不懂,品味中,多谢afan! 不错,不错...... 回复 7# tsys
好像很难得说
页:
[1]