32-х | function Pos (SubS: TStr_Bit; Nach, Shag : Integer ): Integer; |
16-ти | function Pos (SubS: PStr_bit; Nach, Shag : word ): word; |
Nfch – позиция бита в битовой строке, с которого начинается поиск заданной последовательности бит (0…длина битовой переменной);
Shag - шаг смещения при поиске заданной последовательности бит (1…длина битовой переменной);
SubS - задает последовательность бит для поиска.
Функция возвращает позицию бита, начиная с которого в текущей последовательности битов расположена последовательность, заданная переменной - SubS (ее длина должна быть меньше длины текущей переменной). Поиск начинается с бита - Nach , при этом все последующие сравнения битовых последовательностей выполняются со сдвигом битовой последовательности - SubS относительно исходной строки с шагом - Shag бит. Если разыскиваемая битовая последовательность не найдена, то функция возвращает значение - btNotFound.
Например, переменная BitStr содержит битовую последовательность вида (11010000011100001100). После выполнения поиска последовательности бит SubS (1000), (для примера, приведенного в таб.), выполняемого в цикле, будут найдены следующие позиции: 3, 11, btNotFound (-1).
Внимание ! Для ускорения операций поиска определенных последовательностей бит можно задавать шаг сдвига больше единицы (например, в задаче поиска некоторой комбинации бит в синхронной передаче), однако в этом случае будут найдены не все совпадения. Если для примера, приведенного в таблице, задать шаг сдвига равным пяти, то не будет найдено ни одного совпадения
32-х |
Var BitStr, Isx : TStr_bit; {Объявление переменной} |
16-ти |
|