基 础 函 数 参 考


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(0, "错误", "无法打开文件.")
    Exit
EndIf

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

FileClose($file)

provider with jb51.net (unicode)