关于ini文件重复数值问题,请赐教【已解决】
本帖最后由 tsys 于 2011-8-23 21:53 编辑一下是config.ini文件的内容:
0=a
1=aa
2=aa
3=aa
4=a
5=bn
6=sdf
7=sdg
8=dfgdf
9=kljk
10=hjik
想要删除重复的数值的整个行,比如3个"aa" ,只保留一个"aa" http://www.autoitx.com/forum.php?mod=viewthread&tid=17174&fromuid=7639113 回复 2# 3mile
谢谢 回复 3# tsys
#include <Array.au3>
$aNumbers=IniReadSection("config.ini","config")
_ArrayDisplay($aNumbers)
$aUnique = ArrayUnique($aNumbers,1,0,1)
_ArrayDisplay($aUnique)
If MsgBox(4,"","覆盖原文件(是)"&@CRLF&"新建INI文件(否)") = 6 Then
IniDelete("config.ini","config")
IniWriteSection("config.ini","config",$aUnique,1)
Else
IniWriteSection("config2.ini","config",$aUnique,1)
EndIf
Exit
Func ArrayUnique($aArray, $iBase = 0, $oBase = 0, $iCol = 0);数组,开始索引,结束索引,列
If Not IsArray($aArray) Then Return SetError(1, 0, 0)
If UBound($aArray, 0) > 2 Then Return SetError(2, 0, 0)
Local $oD = ObjCreate('Scripting.Dictionary')
If @error Then Return SetError(4, 0, 0)
Local $dim2 = UBound($aArray, 2), $i
If $dim2 Then ;2D array
Local $dim1 = UBound($aArray, 1)
Local $aUnique[$dim1][$dim2], $j=$iBase
If $oBase=0 Then $oBase = $dim1-1
For $i = $iBase to $oBase
If Not $oD.Exists($aArray[$i][$iCol]) Then
$oD.Add($aArray[$i][$iCol], 0)
$aUnique[$j] = $aArray[$i]
$aUnique[$j] = $aArray[$i]
$j += 1
EndIf
Next
ReDim $aUnique[$j]
$aUnique=UBound($aUnique)
Else ;1D array
For $i In $aArray
If Not $oD.Exists($i) Then $oD.Add($i, 0)
Next
Local $aUnique = $oD.Keys()
EndIf
$oD.RemoveAll
$oD = ""
Return SetError(0, 0, $aUnique)
EndFunc {:face (355):} 多谢3m
页:
[1]