FL_SPOS - изменение позиции курсора в файле

Назначение.
Функциональный блок используется для изменения текущей позиции курсора в открытом файле.
Состав структурной переменной.
Переменная со структурным типом FL_SPOS будет добавлена в локальный словарь автоматически при добавлении блока в редактор.

Описание алгоритма.
На вход FILE_ID передается уникальный идентификатор открытого файла, полученный при его открытии с использованием блока FL_OPEN.
Смещение курсора относительно начала файла задается входным параметром POS, шаг смещения - 1 байт. Если END=TRUE, смещение курсора задается относительно конца файла.

Код результата выполнения операции передается на выход Q:
|
Q
|
Краткое описание
|
|
0
|
Выполнено успешно
|
|
7
|
Ошибка при установке текущей позиции в файле
|
|
12
|
Файл не открыт
|
Пример установки курсора в пределах файла.
Передается комбинация входных параметров:
-
END=false (устанавливать курсор относительно начала файла);
-
POS=4 (сместить относительно начала файла на 4 байта).

Пример установки курсора в конец файла.
Передается комбинация входных параметров:
-
END=true (устанавливать курсор относительно конца файла);
-
POS=0 (без смещения относительно конца файла).

Пример установки курсора за пределами файла и увеличения его размера.
Передается одна из комбинаций входных параметров:
-
END=false и POS > размера файла;
-
END=true и POS > 0.
При этом размер файла увеличиться только после вызова функционального блока FL_WR для записи данных, а пространство между концом файла и установленной за его пределами позицией курсора будет заполнено нулями. Простое смещение курсора, до записи данных, не изменяет размер файла.
Пример синтаксиса на языке ST.
//вызов функционального блока FL_SPOS
Block.FL_SPOS(FILE_ID, POS, END);
//чтение кода завершения операции
POS := Block.Q;
|
