本帖最后由 131738 于 2013-11-3 14:04 编辑 For $i = 1 To 5 ; 主循环
Switch $i
Case 1
$Path = (@ScriptDir & "\Dir1")
Case 2
$Path = (@ScriptDir & "\Dir2")
Case 3
$Path = (@ScriptDir & "\Dir3")
Case 4
$Path = (@ScriptDir & "\Dir4")
Case 5
$Path = (@ScriptDir & "\Dir5")
EndSwitch
_FileToArray();读文件名到数组
_Operate();操作文件名数组
Next
Func _FileToArray()
...
...
Return $File_Array;根据 For 循环, 返回不同内容的数组
EndFunc
Func _Operate();操作文件名数组
...
...
;操作完成后, 循环删除数组元素, 清空当前数组
For $i = 0 To UBound($File_Array) - 1
_ArrayDelete($File_Array, 0);依次删除数组 0 元素,直到最后清空数组
Next
DirRemove ( $Path );删除已处理的文件夹
EndFunc
问题:
实际运行这个脚本, _Operate() 能顺利完成主循环 Case 1 传递的内容,
但当执行 Case 2 时, _Operate() 发生错误退出脚本, 提示数组索引错误,
测试检查,发现这时 _FileToArray() 返回的 $File_Array 前面元素为 Case 1 传递文件夹 Dir1 的内容,
后面才是 Case 2 传递文件夹 Dir2 的内容, 由于执行 Case 1 的最后已删除文件夹 Dir1,
到执行第二次 _Operate() 执行时, 没有了文件夹 Dir1 的文件, 使得 _Operate() 操作失败!
请问是否内存残留的原因, 是或不是, 应如果处理? 谢谢!!! |