已解决:求助:带有 File Line UDF函数的脚本在Win XP系统下运行正常,Win7下报错
本帖最后由 jiaosc 于 2014-7-6 17:25 编辑求助:带有 File Line UDF函数的脚本在Win XP系统下运行正常,Win7下报错,提示信息如下:
+>11:27:28 开始 AccAu3Wrapper v.1.1.2.1 SciTE v.3.4.1.0 键盘布局:00000804操作系统:WIN_7/Service Pack 1CPU:X64 系统架构:X64 环境(语言:0804)
+> SciTE目录 => C:\Program Files (x86)\AutoIt3\SciTE 用户目录 => C:\Users\jiaosc\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\jiaosc\AppData\Local\AutoIt v3\SciTE
>运行 AU3Check (3.3.12.0)从:C:\Program Files (x86)\AutoIt3
"E:\NezipFox\FileLineUDF .AU3"(486,46) : error: _ArraySwap() called with wrong number of args.
_ArraySwap($Arr[$x], $Arr[$x - 1])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Program Files (x86)\AutoIt3\Include\Array.au3"(2054,93) : REF: definition of _ArraySwap().
Func _ArraySwap(ByRef $avArray, $iIndex_1, $iIndex_2, $bRow = False, $iStart = 0, $iEnd = 0)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"E:\NezipFox\FileLineUDF .AU3"(490,46) : error: _ArraySwap() called with wrong number of args.
_ArraySwap($Arr[$x], $Arr[$x + 1])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Program Files (x86)\AutoIt3\Include\Array.au3"(2054,93) : REF: definition of _ArraySwap().
Func _ArraySwap(ByRef $avArray, $iIndex_1, $iIndex_2, $bRow = False, $iStart = 0, $iEnd = 0)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
E:\NezipFox\FileLineUDF .AU3 - 2 error(s), 0 warning(s)
!>11:27:28 AU3Check 语法检查结束. 按F4键跳转到下一个错误.rc:2
+>11:27:28 AccAu3Wrapper 完成.
>Exit code: 0 Time: 0.583
FileLineUDF.au3函数出错提示位置:
===============================================================================================================================
Func _FileLineMove($FilePath, $From, $TO)
If Not _IsFileOpen($FilePath) Then
SetError(1)
Return 0
EndIf
If Not _FileLineExists($FilePath, $From) Or Not _FileLineExists($FilePath, $TO) Then
SetError(2)
Return 0
EndIf
Local $Arr
_FileReadToArray($FilePath, $Arr)
If @error Then
SetError(@error)
Return 0
EndIf
If $From > $TO Then
For $x = $From To $TO + 1 Step -1
_ArraySwap($Arr[$x], $Arr[$x - 1])→ error: _ArraySwap() called with wrong number of args.
Next
Else
For $x = $From To $TO - 1 Step 1
_ArraySwap($Arr[$x], $Arr[$x + 1])→ error: _ArraySwap() called with wrong number of args.
Next
EndIf
Local $FO = FileOpen($FilePath, 2)
If $FO = -1 Then
SetError(1)
Return 0
EndIf
For $x = 1 To UBound($Arr) - 1
FileWriteLine($FO, $Arr[$x])
Next
FileClose($FO)
Return 1
EndFunc ;==>_FileLineMove
; #FUNCTION# ====================================================================================================================
; Author ........: Melba23
; Modified.......:
; ===============================================================================================================================
Func _ArraySwap(ByRef $avArray, $iIndex_1, $iIndex_2, $bRow = False, $iStart = 0, $iEnd = 0)→ REF: definition of _ArraySwap().
求大师指教如何解决? 把出错地方 _ArraySwap($Arr[$x], $Arr[$x - 1])改为:_ArraySwap($Arr,$Arr[$x], $Arr[$x - 1])按给出的此函数相关定义,调用此函数时,至少要传入3个参数。
第一个参数是已定义好的数组,第二个参数是该数组下标值之一,第三个参数是该数组另一个下标值。 回复 2# user3000
谢谢user3000老师的指教,按照提示修改后已能正常通过语法检测,还没有时试具体功能.另外还想请教一下user3000老师,我的高版本的SciTE在折叠脚本代码的时候,IF---EndIf语句后面的EndIf或者For------Next后面的这个Next不显示,原来用低版本的SciTE在折叠脚本代码的时候时显示的,很是不习惯,想请教老师高版本的SciTE如何设置才能把后面的这个EndIf或Next等语句显示出来呢? 本帖最后由 jiaosc 于 2014-7-6 10:09 编辑
回复 2# user3000
谢谢user3000老师的指教,按照提示修改后已能正常通过语法检测,还没有时试具体功能.另外还想请教一下user3000老师,我的高版本的SciTE在折叠脚本代码的时候,IF---EndIf语句后面的EndIf或者For------Next后面的这个Next不显示,原来用低版本的SciTE在折叠脚本代码的时候时显示的,很是不习惯,想请教老师高版本的SciTE如何设置才能把后面的这个EndIf或Next等语句显示出来呢?
原来用低版本的SciTE在折叠脚本代码的时候时显示:
If $setfile = -1 Then
Else
EndIf
Func Inputini()
EndFunc ;==>Inputini
While 1
WEnd
现在的高版本的SciTE在折叠脚本代码的时候时显示:
If $setfile = -1 Then
Else
Func Inputini()
While 1
希望设置成前面的显示方式,请指教.谢谢! 回复 4# jiaosc
这个设置我不会!
可以考虑把低版的SCiTE拷过来用的。
也可以强制自己使用一些日子,慢慢就习惯了吧。
页:
[1]