函数参考


FileRead

从此前已打开的文本文件中读取指定数量的字符.

FileRead ( "文件句柄/文件名" [, 数量] )

参数

文件句柄/文件名 目标文件句柄,可由此前调用 FileOpen 函数的返回值获得.另外也可以直接使用文件名.
数量 [可选参数] 指定要读取字符的数量.参考备注.

返回值

成功: 返回所读取的字符/二进制数据.@extended将被设置为读取了多少字节/字符
特殊: 把 @error 设为 -1,说明已经读到文件尾.
失败: 把 @error 设为 1,说明文件并非以读取模式打开或者有其它错误.

注意/说明

一个负数或者未定义数量, 将从当前位置读取整个文件.

若给定的是文件名而不是文件句柄,那么该文件将在函数执行期间被打开并关闭,如果打开的文件较大则会比使用文件句柄要慢得多.
注意:不要混用文件句柄和文件名,比如使用 FileOpen 函数打开某个文件然后又以文件名的形式使用本函数.在程序中要么使用文件句柄要么就使用文件名,不要两者都用!

只有 ANSI 和 UTF16/UTF8 的文本格式可以被读取 - AutoIt 将自动识别类型.

一个文件可以使用FileOpen函数进行二进制(字节)读取,在这里数量是字节数而不是字符数.太大的 "数量" 可能引起 AutoIt 因为内存分配失败而停止工作.

相关

FileOpen, FileReadLine, FileWrite, FileWriteLine, String, FileSetPos, FileGetPos

示例/演示


;要打开的文件
Local $file = FileOpen("test.txt", 0)

; 检查打开的文件是否可为读
If $file = -1 Then
    MsgBox(4096, "错误", "不能打开文件.")
    Exit
EndIf

; 每次读取一个字符,直到文件结束(译注:读中文必须设置为远大于1的值!)(译注的译注(thesnow):ANSI编码中,一个中文为两个字符(char)/字节)
While 1
    Local $chars = FileRead($file, 1)
    If @error = -1 Then ExitLoop
    MsgBox(4096, "读取的字符:", $chars)
WEnd

FileClose($file)