帮助文件写的是-1
但是无论怎么循环,他都没变,始终是0... 回复 16# wsycharles0o
-1是到尾部了,如果是1就是还有别的错误 回复 17# afan
它就是读完到尾部了也不设@Error... if @error then exitloop 就是了…… 回复 19# republican
拜托....
就是这样不好用... 回复 20# wsycharles0o
我只能说,我没有问题...
回复 21# republican
擦...
我还真人品了... 经测试,@error=-1无问题。$file = FileOpen("mbr.bin", 16)
Local $out,$kb
; 检查打开的文件是否可为读
If $file = -1 Then
MsgBox(0, "错误", "不能打开文件.")
Exit
EndIf
; 每次读取一个字符,直到文件结束(译注:读中文必须设置为远大于1的值!)(译注的译注(thesnow):ANSI编码中,一个中文为两个字符/字节)
While 1
$chars = FileRead($file, 1024)
If @error = -1 Then ExitLoop
$out&=StringTrimLeft($chars,2)
$kb+=1
ConsoleWrite("KB:"&$kb&@CRLF)
Wend
$wfile=FileOpen("out.bin",18)
FileWrite($wfile,'0x'&$out)
FileClose($wfile)
FileClose($file) If @error = -1 Then ExitLoop
在这里,我也一直是这样用的,没遇到什么问题 本帖最后由 飞龙三少 于 2010-9-2 15:25 编辑
在你的While循环中,FileRead、FileWrite、ToolTip这3个操作都会设置@Error的,所以你的While循环判断@Error是最后一个操作ToolTip的@Error,而非FileRead的@Error。其实你仔细看看帮助的例子就解决了,每次FileRead后立刻校验@Error,如果FileRead失败就退出循环,读取成功才开始后续操作:
While 1
$DATA=FileRead($READ,1024)
;如果读取到文件结尾或读取失败退出循环
If @error = 1 Or @error = -1 Then ExitLoop
;读取成功
FileWrite($WRITE,$DATA)
$KB=$KB+1
ToolTip("KB:"&$KB,0,0)
WEnd au3似乎每执行一次函数都会设置一下@error
页:
1
[2]