Что нового

Встроенные функции Autoit не могут определить конец файла

Hikari

Новичок
Сообщения
22
Репутация
0
Есть файл 1.txt , содержащий какие-то символы.
Есть следующий код
Код:
$f = FileOpen("1.txt")
While (@error <> -1)
$s = FileReadLine($f)
MsgBox(0,"",$s)
MsgBox(0,"",@error)
WEnd
FileClose($f)

По идее все должно работать, но достигая конца файла скрипт просто бесконечно выводит на экран пустые собщения, а @error@ так и неполучает заветное значение -1...
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Hikari, функция MsgBox и др. тоже используют макрос @error поэтому значение нужно проверять сразу после использования функции

Код:
#include <MsgBoxConstants.au3>
Local $hFile = FileOpen("1.txt"), $sLine
If $hFile = -1 Then Exit MsgBox($MB_ICONERROR + $MB_TOPMOST, "Ошибка", "Не удалось открыть файл")

While 1
	$sLine = FileReadLine($hFile)
	If @error = -1 Then ExitLoop
	MsgBox($MB_ICONINFORMATION + $MB_TOPMOST, "Error: " & @error, $sLine)
WEnd
FileClose($hFile)
 
Верх