↑  ←  Описание функции


FileSetPos

Устанавливает текущую позицию указателя в файле.

FileSetPos ( "filehandle", offset, origin )

Параметры

filehandle Дескриптор файла, возвращённый функцией FileOpen().
offset Смещение относительно указанной позиции. Это значение может быть положительным или отрицательным. Отрицательные значения смещают в обратном направлении от указанной позиции в origin.
origin Должен принимать одно из следующих значений:
0 - начало файла ($FILE_BEGIN из Constants.au3).
1 - текущая позиция ($FILE_CURRENT из Constants.au3).
2 - конец файла ($FILE_END из Constants.au3).

Возвращаемое значение

Успех:Возвращает True, если операция выполнена успешно.
Ошибка:Возвращает False.

Примечания

Включите Constants.au3 в свой скрипт, чтобы использовать символические имена (константы) указанные в скобках для параметра origin
Используя FileSetPos(), можно считывать и записывать данные в один и тот же файл. В этом случае следует всегда вызывать функцию FileFlush() между каждыми операциями записи и чтения.
Перемещение указателя в середину данных может быть использовано для перезаписи. Перезапись участка в файле замещает существующие символы или дописывает их к концу файла и не сопровождается перезаписью всего файла, а только изменяемого участка.

См. также

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

Пример

#include <Constants.au3>

Local $sFile, $hFile, $iPos

$sFile = @ScriptDir & "test.txt"
$hFile = FileOpen($sFile, 2)

; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл
If $hFile = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf

; Записывает некоторый текст в файл. При записи позиция устанавливается в конец записанного текста
FileWrite($hFile, "Тестовая строка, в которую выполнится запись по позиции")

; Устанавливает позицию в начало файла и сдвиг 33 байта/символа.
FileSetPos($hFile, 33, $FILE_BEGIN)

FileWrite($hFile, "ЕНА_") ; Запись данных от установленной позиции

; Устанавливает в позицию 9 от начала файла
FileSetPos($hFile, 9, $FILE_BEGIN)

$iPos = FileGetPos($hFile) ; Возвращает позицию указателя в файле

MsgBox(0, "Чтение файла от текущей позиции " & $iPos, FileRead($hFile))

; Закрываем дескриптор.
FileClose($hFile)

; Удаляем временный файл.
FileDelete($sFile)