File对象 [AHK_L 42+]

提供文件输入/输出的接口. FileOpen 返回文件类型的对象.

Read

从文件读取字符串并使文件指针向前移动.

String := File.Read([Characters])
Characters需读取的最大字符数. 如果省略, 则读取文件的剩余部分并作为单个字符串返回. 如果 File 对象创建于非搜寻设备(例如控制台缓冲区或管道)的句柄,省略此参数可能引起执行方法失败或仅返回当前可用的数据。
返回值字符串.

Write

写入字符串到文件并使文件指针向前移动.

File.Write(String)
String字符串.
返回值写入的字节数 (不是字符数).

ReadLine

从文件中读取一行文本并使文件指针向前移动.

Line := File.ReadLine()
返回值一行文本. 其中可能包括 `n, `r`n`r, 取决于文件和打开文件时使用的 EOL 标志.

WriteLine

写入字符串后面跟着 `n`r`n, 取决于打开文件时使用的标志. 使文件指针向前移动.

File.WriteLine([String])
String可选的字符串.
返回值写入的字节数 (不是字符数).

ReadNum

从文件中读取指定类型的数据并使文件指针向前移动。

Num := File.ReadNumType()
NumType指定下列各项的其中一个直接作为函数名称的一部分:
UInt, Int, Int64, Short, UShort, Char, UChar, Double 或 Float.
返回值成功时返回数字, 否则返回空字符串.

WriteNum

写入指定类型的数据到文件并使文件指针向前移动。

File.WriteNumType(Num)
NumType指定下列各项的其中一个直接作为函数名称的一部分:
UInt, Int, Int64, Short, UShort, Char, UChar, Double 或 Float.
Num数字.
返回值写入的字节数. 例如, 写入成功时 WriteUInt 返回 4.

RawRead

从文件读取原始的二进制数据到内存. 如果指定了变量, 则必要时会自动扩展.

File.RawRead(VarOrAddress, Bytes)
VarOrAddress用来保存复制出来的数据的变量或内存地址。用法类似于 NumGet.
Bytes需读取的最大字节数.
返回值读取的字节数.

RawWrite

写入原始的二进制数据到文件.

File.RawWrite(VarOrAddress, Bytes)
VarOrAddress包含数据的变量或内存中的数据地址。用法类似于 NumPut.
Bytes需写入的字节数.
返回值写入的字节数.

Seek

移动文件指针.

File.Seek(Distance [, Origin = 0])
File.Position := Distance
File.Pos := Distance
Distance需移动的距离, 单位为字节. 较小的值更接近文件的开始处.
Origin文件指针开始移动的起点. 必须为下列值的其中一个:
  • 0 (SEEK_SET): 文件的开始处. Distance 必须为零或更大.
  • 1 (SEEK_CUR): 文件指针的当前位置.
  • 2 (SEEK_END): 文件的末尾. Distance 通常应该为负数.
如果省略, 当 Distance 为负数时 Origin 为 SEEK_END, 而其他情况时为 SEEK_SET.
返回值成功时为非零值, 否则为零.

Tell

Pos := File.Tell()
Pos := File.Position
Pos := File.Pos
返回值文件指针的当前位置, 文件开始处为 0.

Length

获取或设置文件的大小.

FileSize := File.Length
File.Length := NewSize
NewSize文件的新大小, 单位为字节.
返回值文件的大小, 单位为字节.

此属性应该仅用于真实的文件。如果 File 对象创建于管道的句柄,那么它可能返回管道内部缓冲区中当前可能数据的数目,但不能保证一定如此。

AtEOF

IsAtEOF := File.AtEOF
返回值当文件指针到达文件的末尾时为非零值, 否则为零.

此属性应该仅用于真实的文件。如果 File 对象创建于非搜寻设备(例如控制台缓冲区或管道)的句柄,那么返回的值可能没有意义,因为这些设备逻辑上没有“文件末尾”。

Close

关闭文件, 把缓冲区的数据写入磁盘并释放共享锁定. 尽管当对象释放时文件会自动关闭, 不过建议尽快关闭文件.

File.Close()

没有参数或返回值.

Encoding

获取或设置此文件对象使用的编码.

Encoding := File.Encoding
File.Encoding := Encoding
EncodingFileEncoding 可接受格式的字符串.

__Handle

File.__Handle
返回值与 DllCall 一起使用的系统文件句柄. 请参阅 CreateFile.

文件对象使用内部缓冲区读取或写入。如果数据已经被写入对象的内部缓冲区,则在返回句柄前会确保把数据写入磁盘。如果缓冲区中包含从文件读取的数据,则会把数据丢弃且文件指针的实际位置被重设为由 File.Pos 表示的逻辑位置。