|
|
[测试]
672=13
723=3
246=3
872=3
782=3
873=3.5
783=3
635=2
319=2
604=1.5
675=1
212=1
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <ScreenCapture.au3>
$car = IniReadSection("FFF.ini", "测试")
If @error = 1 Then
Else
__ArraySort($car, 1, 1, 0, 1);降序
;~ _ArrayDisplay($car) ;显示出来
IniDelete("FFF.ini", "测试")
For $i = 1 To $car[0][0]
IniWrite("FFF.ini", "测试", $car[$i][0], $car[$i][1])
Next
EndIf
Func __ArraySort(ByRef $avArray, $iDescending = 0, $iStart = 0, $iEnd = 0, $iSubItem = 0)
If Not IsArray($avArray) Then Return SetError(1, 0, 0)
Local $iUBound = UBound($avArray) - 1
; Bounds checking
If $iEnd < 1 Or $iEnd > $iUBound Then $iEnd = $iUBound
If $iStart < 0 Then $iStart = 0
If $iStart > $iEnd Then Return SetError(2, 0, 0)
Switch UBound($avArray, 0)
Case 1
__ArrayQuickSort1D($avArray, $iStart, $iEnd)
If $iDescending Then
For $i = $iStart To $iEnd
$avArray[$i] = StringFormat("%19d", $avArray[$i])
Next
_ArrayReverse($avArray, $iStart, $iEnd)
For $i = $iStart To $iEnd
$avArray[$i] = StringFormat("%1d", $avArray[$i])
Next
EndIf
Case 2
Local $iSubMax = UBound($avArray, 2) - 1
If $iSubItem > $iSubMax Then Return SetError(3, 0, 0)
If $iDescending Then
$iDescending = -1
Else
$iDescending = 1
EndIf
For $i = $iStart To $iEnd
$avArray[$i][$iSubMax] = StringFormat("%19d", $avArray[$i][$iSubMax])
Next
__ArrayQuickSort2D($avArray, $iDescending, $iStart, $iEnd, $iSubItem, $iSubMax)
For $i = $iStart To $iEnd
$avArray[$i][$iSubMax] = StringFormat("%1d", $avArray[$i][$iSubMax])
Next
Case Else
Return SetError(4, 0, 0)
EndSwitch
Return 1
EndFunc ;==>__ArraySort
;我想对这个INI 文件进行排序,他只对整数型有效。如果是带小数点的,他就不能排序了。
|
|