tsys 发表于 2011-12-31 20:02:17

将每个数组元素与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                       
                       

afan 发表于 2011-12-31 20:32:39

“将$a的每一个元素与ini的数据对比一便” 对比什么?字段?关键字?还是值?
“如果不同则再最后的数据写入” 写什么?

tsys 发表于 2011-12-31 21:16:57

回复 2# afan


    呵呵,我没说说明白,对比的是值,如果ini文件中存在与数组元素相同的值,则不向ini文件写入值,不存在则写入

afan 发表于 2011-12-31 21:31:12

回复 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这样的?

tsys 发表于 2011-12-31 21:33:05

回复 4# afan


    呵呵,是的

afan 发表于 2011-12-31 21:35:18

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

tsys 发表于 2011-12-31 21:41:43

A版的方法有些不懂,品味中,多谢afan!

lxz 发表于 2011-12-31 21:46:02

不错,不错......

PEM-System 发表于 2013-9-5 05:14:29

回复 7# tsys
好像很难得说
页: [1]
查看完整版本: 将每个数组元素与ini文件的数据对比,如果不存在则写入,代码有问题,求修正[已解决]