如何让数组只记录最近的5次数据【已解决】
本帖最后由 xwt620 于 2011-11-1 23:48 编辑RT,到记录第六次数据时,把第一次数据抛弃,并重新排序
描述的不太清楚话,请看下面结果
第1次$aArr = {1,0,0,0,0}
第2次$aArr = {1,2,0,0,0}
第3次$aArr = {1,2,3,0,0}
第4次$aArr = {1,2,3,4,0}
第5次$aArr = {1,2,3,4,5}
第6次时$aArr = {2,3,4,5,6}
第7次时$aArr = {3,4,5,6,7}
有点类似记录最近打开的文件一样。 要求有点不明:就是怎么知道现在更新在那个数组元素?你给的例子,用是否值为0来判断吗?
也就是怎么知道是第1次,第二次…… 回复 2# happytc
其实我觉得用空值表示也是可以的,这个也不是用于记录最近文件,所以在开始定义数组时也不一定就直接赋值了 回复happytc
其实我觉得用空值表示也是可以的,这个也不是用于记录最近文件,所以在开始定义数 ...
xwt620 发表于 2011-11-1 23:14 http://www.autoitx.com/images/common/back.gif
你在脚本里,用个计数器计录下前面5次更新到那里了就可以了。
前1-5次,你直接赋值:$aArr[$Counter - 1] = $Value
当第6次时,用下面的
#include <Array.au3>
Local $aArr =
_ChangeArray(8, $aArr)
_ArrayDisplay($aArr)
Func _ChangeArray($Value, ByRef $aArr)
For $i = 0 To UBound($aArr) - 1
If $i = UBound($aArr) - 1 Then
$aArr[$i] = $Value
Return
Else
$aArr[$i] = $aArr[$i + 1]
EndIf
Next
EndFunc
回复 4# happytc
呵呵,谢谢。刚才脑袋瓜子有点蒙,半天转不过弯。休息一下后自己也想到一个思路#include <Array.au3>
Global $aArr
For $i = 1 To 10
If $i <=5 Then
$aArr[$i]=$i
$aArr = $aArr + $aArr[$i]
Else
$aArr = $aArr - $aArr
_ArrayDelete($aArr, 1)
_ArrayAdd($aArr,$i)
$aArr = $aArr + $aArr
EndIf
Next
_ArrayDisplay($aArr)
_ArrayPush(ByRef $avArray, $vValue [, $iDirection = 0])
页:
[1]