函数参考


FileSetPos

设置当前文件坐标.

FileSetPos ( 文件句柄, 偏移量, 原点 )

参数

文件句柄 一个文件句柄,由 FileOpen() 函数返回的句柄.
偏移量 从原点移动到需要的位置的偏移量. 这个值可能是一个正数,也可能是负数. 负数值将从原点向文件开始处移动.
原点 必须设置为下方的一个值:
 0 - 文件开始处 ($FILE_BEGIN 包含于 Constants.au3).
 1 - 当前坐标 ($FILE_CURRENT 包含于 Constants.au3).
 2 - 文件末尾 ($FILE_END 包含于 Constants.au3).

返回值

成功: 如果操作成功,返回 True.
失败: 返回 False.

注意/说明

Include Constants.au3 in your script to use the symbolic name in parentheses to specify the origin.
使用 FileSetPos() 将同一文件的同时读写成为可能. 当您在同时读写同一文件时, 请在每次读写操作后调用 FileFlush() 将缓冲器数据写入磁盘.
Moving the pointer to the middle of the data can be used to overwrite data.

相关

FileGetPos, FileFlush, FileRead, FileReadLine, FileWrite, FileWriteLine, FileOpen

示例/演示


#include <Constants.au3>

Local Const $sFile = "test.txt"
Local $hFile = FileOpen($sFile, 2)

; 检查文件是否已打开
If $hFile = -1 Then
    MsgBox(4096, "错误", "无法打开文件.")
    Exit
EndIf

; 向此前已打开的文本文件尾追加一行数据.
FileWriteLine($hFile, "Line1")
FileWriteLine($hFile, "Line2")
FileWriteLine($hFile, "Line3")

; 保存该文本文件内存缓冲区数据到磁盘.相等于保存操作.
FileFlush($hFile)

; 读取当前文件坐标内容
MsgBox(4096, "", "位置: " & FileGetPos($hFile) & @CRLF & "数据: " & @CRLF & FileRead($hFile))

; 设置当前文件坐标.
Local $n = FileSetPos($hFile, 0, $FILE_BEGIN)

;读取当前文件坐标内容
MsgBox(4096, "", "位置: " & FileGetPos($hFile) & @CRLF & "数据: " & @CRLF & FileRead($hFile))

; 关闭此前已打开的文件.
FileClose($hFile)

;删除临时文件.
FileDelete($sFile)