Среда разработки Unimod PRO 2 (версия 2.3.40)
 Руководство по программированию
×

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;