找回密码
 加入
搜索
查看: 1329|回复: 4

[AU3基础] 关于ini文件重复数值问题,请赐教【已解决】

[复制链接]
发表于 2011-8-23 21:25:59 | 显示全部楼层 |阅读模式
本帖最后由 tsys 于 2011-8-23 21:53 编辑

一下是config.ini文件的内容:
[config]
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"
发表于 2011-8-23 21:46:42 | 显示全部楼层
 楼主| 发表于 2011-8-23 21:52:04 | 显示全部楼层
回复 2# 3mile


谢谢
发表于 2011-8-23 23:19:27 | 显示全部楼层
回复 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][0] = $aArray[$i][0]
                $aUnique[$j][1] = $aArray[$i][1]
                $j += 1
            EndIf
        Next
        ReDim $aUnique[$j][2]
                $aUnique[0][0]=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
 楼主| 发表于 2011-8-24 17:31:17 | 显示全部楼层
多谢3m
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-1 19:26 , Processed in 0.073734 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表