
Clarion Programming / ГЛАВА 13 - Вспомогательные процедуры и функции
.htmГЛАВА 13 - Вспомогательные процедуры и функции Поиск Рубрикатор Форумы Новости сервера Учебный центр Книжный магазин Авторам Море(!) аналитической информации! :: CITFORUM.RU Вы можете приобрести полную версию сайта на CD-ROM CITFORUM.RU >>> ПРОГРАММИРОВАНИЕ [http://www.citforum.ru/programming/clarion/cla_13.shtml]
Скоро! Восьмая техническая конференция
"Корпоративные базы данных 2003"
Москва, 17-18 апреля 2003 года
Компания Microsoft приглашает вас посетить бесплатный семинар
"День разработчика 2003",
который пройдет 11 марта в Санкт-Петербурге,
13 марта - в Екатеринбурге, 18 марта - в Киеве.
Cпешите зарегистрироваться! Количество мест ограничено! ГЛАВА 13 - Вспомогательные процедуры и функции Математические функции ABS (абсолютное значение) INRANGE (попадает ли число в заданный диапазон) INT (отсекает дробную часть) LOGE (натуральный логарифм) LOG10 (десятичный логарифм) RANDOM (случайное число) ROUND (округление числа) SQRT (квадратный корень)
Тригонометрические функции SIN (синус) COS (косинус) TAN (тангенс) ASIN (арксинус) ACOS (арккосинус) ATAN (арктангенс)
Строковые функции ALL (строка из повторяющихся символов) CENTER (центрирование строки) CHR (переводит ASCII-код символа в символ) CLIP (строка без хвостовых пробелов) DEFORMAT (удаляет форматирование из числовых строк) FORMAT (форматирует число по шаблону) INSTRING (позиция подстроки в строке) LEFT (строка, выравненная влево) LEN (длина строки) LOWER (нижний регистр) NUMERIC (состоит ли строка только из цифр?) RIGHT (строка, выравненная вправо) SUB (возвращает подстроку строки) UPPER (верхний регистр) VAL (код символа)
Битовые функции BAND (побитовое И - AND) BOR (побитовое ИЛИ - OR) BXOR (побитовое Исключающее ИЛИ - XOR) BSHIFT (побитовый сдвиг)
Процедуры и функции даты и времени Стандартная дата Стандартное время TODAY (системная дата) SETTODAY (установка системной даты) CLOCK (системное время) SETCLOCK (установка системного времени) DATE (стандартная дата) DAY (день месяца для заданной даты) MONTH (месяц для заданной даты) YEAR (год для заданной даты) AGE (возраст от базовой даты)
Процедуры и функции ДОС COMMAND (командная строка) MEMORY (доступная память) PATH (текущий диск и каталог) RUNCODE (код завершения ДОС) SETCOMMAND (установить параметры командной строки) SETPATH (изменить текущий диск и каталог)
Вспомогательные процедуры и функции ADDRESS (адрес памяти) ERROR (сообщение об ошибке) ERRORCODE (номер кода ошибки) ERRORFILE (имя ошибочного файла) IN (читать данные из порта) MAXIMUM (максимальное значение индекса массива) NAME (досовское имя файла или устройства) OMITTED (проверка пропущенных параметров) OUT (записать данные в порт) PEEK (прочитать память по адресу) POKE (записать в память по адресу) STATUS (состояние принтера/файла/диска/клавиатуры)
МАТЕМАТИЧЕСКИЕ ФУНКЦИИ ABS (абсолютное значение) ABS(выражение)
выражение Константа, переменная или выражение. Функция ABS возвращает абсолютное значение ВЫРАЖЕНИЯ. Абсолютное значение всегда положительно (или ноль). Возвращаемый тип данных: REAL Пример: C = ABS(A - B) !C - абсолютное значение разницы между A и B IF B < 0 THEN B = ABS(B). !Если B отрицательно, то сменить ! его знак INRANGE (попадает ли число в заданный диапазон) INRANGE(выражение,нижний_предел,верхний_предел) выражение Числовая константа, переменная или выражение. нижний_предел Числовая константа, переменная или выражение задающее нижнюю границу диапазона. верхний_предел Числовая константа, переменная или выражение задающее верхнюю границу диапазона. Функция INRANGE сравнивает ВЫРАЖЕНИЕ с включительным диапазоном чисел. Если значение ВЫРАЖЕНИЯ попадает в этот диапазон, то функция возвращает единицу ("ИСТИНУ"). Если же ВЫРАЖЕНИЕ больше ВЕРХНЕГО_ПРЕДЕЛА или меньше НИЖНЕГО_ПРЕДЕЛА, то возвращается ноль ("ЛОЖЬ"). Возвращаемый тип данных: LONG Пример: IF INRANGE(Date % 7,1,5) !Если день - рабочий DO WeekdayRate ! то оплата обычная ELSE !Иначе DO WeekendRate ! плата за работу в выходные . !конец условия INT (отсекает дробную часть) INT(выражение) выражение Числовая константа, переменная или выражение. Функция INT возвращает целую часть числового ВЫРАЖЕНИЯ. Знак результата не меняется и округления не производится. Возвращаемый тип данных: REAL Пример: INT(8.5) вернет 8 INT(-5.9) вернет -5 LOGE (натуральный логарифм) LOGE(выражение) выражение Числовая константа, переменная или выражение. Если значение ВЫРАЖЕНИЯ меньше нуля, то возвращается ноль, поскольку натуральный логарифм не определен для отрицательных чисел. Функция LOGE (произносится как "loge"(ЛОУГ) ) возвращает натуральный логарифм числового ВЫРАЖЕНИЯ. Натуральный логарифм это показатель степени, в которую надо возвести число е, чтобы получилось заданное число. Значение e мы приняли за 2.71828182846. Возвращаемый тип данных: REAL Пример: LOGE(2.71828182846) вернет 1 LOGE(1) вернет 0 LogVal = LOGE(Val) !Получить натуральный логарифм от VAL. LOG10 (десятичный логарифм) LOG10(выражение) выражение Числовая константа, переменная или выражение. Если значение ВЫРАЖЕНИЯ меньше нуля, то возвращается ноль, поскольку десятичный логарифм не определен для отрицательных чисел. Функция LOG10 (произносится как "log ten"(ЛОГ ТЭН) ) возвращает десятичный логарифм числового ВЫРАЖЕНИЯ. Десятичный логарифм, это показатель степени, в которую надо возвести 10, чтобы получить заданное число. Возвращаемый тип данных: REAL Пример: LOG10(10) вернет 1 LOG10(1) вернет 0 LogStore = LOG10(Var) !Сохранить десятичный логарифм от VAR RANDOM (случайное число) RANDOM(нижний_предел,верхний_предел) нижний_предел Числовая константа, переменная или выражение, задающее нижнюю границу диапазона. верхний_предел Числовая константа, переменная или выражение, задающее верхнюю границу диапазона. Функция RANDOM возвращает случайное целое между НИЖНИМ и ВЕРХНИМ ПРЕДЕЛАМИ включительно. Параметры нижний_предел и верхний_предел могуь быть любыми числовыми выражениями, но в диапазон включается только их целая часть. Возвращаемый тип данных: LONG Пример: LOOP X# - 1 TO 6 LottoNbr[X#] = RANDOM(1,49) !Выбираем числа для 6 из 49 . ROUND (округление числа) ROUND(выражение,точность) выражение Числовая константа, переменная или выражение. точность Числовое выражение, являющееся степенью десяти, как то: 1, 10, 100, 0.1, 0.001 и т.д. Если значение не является точной степенью десяти, то используется ближайшая меньшая степень т.е. 0.55 заменится на 0.1, а 155 - на 100. Функция ROUND возвращает значение ВЫРАЖЕНИЯ, округленное до заданного ТОЧНОСТЬЮ знака. Возвращаемый тип данных: REAL Пример: ROUND(5163,100) вернет 5200 ROUND(657.50,1) вернет 658 ROUND(51.63594,.O1) вернет 51.64 Commission = ROUND(Price / Rate,.01) !Округляем комиссионные до целых копеек SQRT (квадратный корень) SQRT(выражение) выражение Числовая константа, переменная или выражение. Если значение ВЫРЖЕНИЯ меньше нуля, то возвращается 0. Функция SORT возвращает квадратный корень из ВЫРАЖЕНИЯ. Если Х - это любое положительное вещественное число, то корень квадратный из Х, это такое число, которое, будучи умноженным само на себя, даст Х. Возвращаемый тип данных: REAL Пример: Length = SORT(X^2 + Y^2) !По теореме Пифагора находим расстояние от 0,0 до X,Y ТРИГОНОМЕТРИЧЕСКИЕ ФУНКЦИИ Тригонометрические функции возвращают значения, представляющие углы и соотношения сторон прямоугольного треугольника (содержащего угол в 90њ). Гипотенуза, это сторона треугольника, противостоящая его прямому углу. (Остальные подробности можно узнать из любого нормального учебника тригонометрии, что по-гречески означает "измерение треугольников"). Углы выражаются в радианах. PI (ПИ) - это константа, которая представляет соотношение между длиной окружности и ее радиусом. В окружности есть 2*Pl радиан (или 360 градусов). Ниже приведены более или менее точное значение ПИ и коэффициенты преобразований между радианами и градусами. Pi EQUATE(3.1415926535898) !Значение ПИ Rad2Deg EQUATE(57.295779513082) !Градусов в радиане Deg2Rad EQUATE(.0174532925199) !Радиан в градусе SIN (синус) SIN(радиан) радиан Числовая константа, переменная или выражение, задающее угол в радианах. Функция SIN возвращает тригонометрический синус угла, выраженного в радианах. Синус - это соотношение между длиной стороны противоположной углу и длиной гипотенузы. Возвращаемый тип данных: REAL Пример: Angle = 45 * Deg2Rad !Переводим 45њ в радианы SineAngle = SIN(Angle) !Получаем синус угла в 45њ COS (косинус) COS(радиан) радиан Числовая константа, переменная или выражение, задающее угол в радианах. Функция COS возвращает тригонометрический косинус угла, выраженного в радианах. Косинус это отношение стороны прилегающей к углу и гипотенузы. Возвращаемый тип данных: REAL Пример: Angle = 45 * Deg2Rad !Переводим 45њ в радианы CoSineAngle = SIN(Angle) !Получаем косинус угла в 45њ TAN (тангенс) TAN(радиан) радиан Числовая константа, переменная или выражение, задающее угол в радианах. Функция TAN возвращает тригонометрический тангенс угла, выраженного в радианах. Тангенс это отношение стороныы противоположной углу и стороны прилегающей к углу. Возвращаемый тип данных: REAL Пример: Angle = 45 * Deg2Rad !Переводим 45њ в радианы TangentAngle = SIN(Angle) !Получаем тангенс угла в 45њ ASIN (арксинус) ASIN(выражение) выражение Числовая константа, переменная или выражение, задающее синус угла. Функция ASIN возвращает ОБРАТНЫЙ синус. "Обратить синус" означает "получить угол, имеющий заданный синус". Возвращается угол в радианах. Возвращаемый тип данных: REAL Пример: InvSine = ASIN(SineAngle) !Получить арксинус См. также: SIN ACOS (арккосинус) ACOS(выражение) выражение Числовая константа, переменная или выражение, задающее косинус угла. Функция ACOS возвращает ОБРАТНЫЙ косинус. "Обратить косинус" означает "найти угол, имеющий заданный косинус". Возвращается угол в радианах. Возвращаемый тип данных: REAL Пример: InvCosine = ACOS(CosineAngle) !Получаем арккосинус См. также: COS ATAN (арктангенс) ATAN(выражение) выражение Числовая константа, переменная или выражение, задающее тангенс угла. Функция ATAN возвращает ОБРАТНЫЙ тангенсу "Обратить тангенс" означает "найти угол, имеющий заданный тангенс". Возвращается угол в радианах. Возвращаемый тип данных: REAL Пример: InvTangent = ATAN(TangentAngle) !Получить арктангенс См. также: TAN СТРОКОВЫЕ ФУНКЦИИ ALL (строка из повторяющихся символов) ALL(строка[,длина]) строка Строковое выражение, содержащее последовательность символов для повторения. длина Длина возвращаемой строки. Если пропущена, то будет возвращена строка из 255 символов. Функция ALL возвращает строку, содержащую СТРОКУ, повторенную несколько раз. Возвращаемый тип данных: STRING Пример: Starline = ALL('*',25) !Получить 25 звездочек Dotline = ALL('.') !Получить 255 точек CENTER (центрирование строки) CENTER(строка[,длина]) строка Строковая константа, переменная или выражение. длина Длина результирующей строки. Если пропущена, то используется длина параметра СТРОКА. Функция CENTER сначала удаляет ведущие и хвостовые пробелы из СТРОКИ, затем дополняет ее ведущими и хвостовыми пробелами так, чтобы строка отцентрировалась в пределах ДЛИНЫ и затем возвращает полученный результат. Возвращаемый тип данных: STRING Пример: CENTER('ABC',5) вернет ' ABC ' CENTER('ABC ') вернет ' ABC ' CENTER(' ABC') вернет ' ABC ' Message = CENTER(Message) !Сообщение - в центр Rpt:Title = CENTER(Name,60) !Имя - в центр CHR (переводит ASCII-код символа в символ) CHR(код) код Числовое выражение, содержащее числовой ASCII-код символа. Функция CHR возвращает символ, представленный его ASCII-кодом. Возвращаемый тип данных: STRING Пример: Stringvar = CHR(122) !Строчная "z" Stringvar = CHR(239) !Строчная "я" CLIP (строка без хвостовых пробелов) CLIP(строка) строка Строковое выражение. Функция CLIP удаляет хвостовые пробелы из строки. Возвращаемая строка - это подстрока СТРОКИ без хвостовых пробелов. CLIP часто используется вместе с оператором конкатенации (слияния) в строковых выражениях. Возвращаемый тип данных: STRING Пример: Name = CLIP(Last) &','& CLIP(First) & Init & '.' !ФИО по военному образцу, ! типа "Agarkoff, Serg P." DEFORMAT (удаляет форматирование из числовых строк) DEFORMAT(строка[,шаблон]) строка Строковое выражение, содержащее строку цифр. шаблон Шаблон формата или метка данного типа STRING, CSTRING или PSTRING, описанного как шаблон формата. Если пропущено, то используется шаблон, использованный для СТРОКИ. (?) Если СТРОКА описана без параметра ШАБЛОН, то возвращаемое значение будет содержать только те символы, которые разрешены в числовых константах. Функция DEFORMAT удаляет символы форматирования и строки, содержащей цифры, возвращается только то, что можно распознать как число. Возвращаемый тип данных: STRING Пример: DialString = 'ATDT1' & DEFORMAT(Phone,@P(###)###-####P) & | '@13,10)' !Составляем номер для набора модемом ClarionDate = DEFORMAT(dBaseDate,@D1) !Получаем стандартную дату из строки вида mm/dd/yy FORMAT (форматирует число по шаблону) FORMAT(значение,шаблон) значение Числовое выражение, содержащее значение для форматирования. шаблон Шаблон формата или метка STRING, CSTRING или PSTRING описанной с параметром ШАБЛОН. Функция FORMAT возвращает числовую строку, отформатированную согласно параметру ШАБЛОН. Возвращаемый тип данных: STRING Пример: Rpt:SocSecNbr = FORMAT(Emp:SSN,@P###-##-####P) !Форматируем под номер карточки социального страхования Phone=FORMAT(DEFORMAT(Phone,@P###-###-####P),@P(###)###-####P) !Заменяем в номере некоторые дефисы на скобки DateString = FORMAT(DateLong,@D1) !Преобразуем дату в строку INSTRING (позиция подстроки в строке) INSTRING(подстрока,строка[,шаг][,старт]) подстрока Строковая константа, переменная или выражение, содержащее искомую строку. строка Метка переменной типа STRING, CSTRING или PSTRING, в которой искать. шаг Числовая константа, переменная или выражение, задающее размер шага поиска. ШАГ=1 означает, что ПОДСТРОКА будет искаться с каждого символа СТРОКИ, ШАГ=2 - с каждого второго символа и так далее. Если пропущен, то по умолчанию равен длине ПОДСТРОКИ. старт Числовая константа, переменная или выражение, задающее начальную точку, номер символа, для поиска ring. Если пропущен, поиск начнется с первого символа СТРОКИ. Функция INSTRING проходит по СТРОКЕ, отыскивая в ней вхождения ПОДСТРОКИ. Если ПОДСТРОКА найдена, то возвращается номер символа в СТРОКЕ, с которого начинается вхождение в нее ПОДСТРОКИ. Если же ПОДСТРОКА не найдена, то INSTRING возвращает 0. Возвращаемый тип данных: LONG Пример: INSTRING('DEF','ABCDEFGHIJ',1,1) вернет 4 INSTRING('DEF','ABCDEFGHIJ',2,1) вернет 0 INSTRING('DEF','ABCDEFGHIJ',2,2) вернет 2 INSTRING('DEF','ABCDEFGHIJ',3,1) вернет 2 Extension = SUB(FileSpec,INSTRING('.',FileSpec) + 1,3) !Выделяем расширение из полной спецификации файла IF INSTRING(Search.Cus:Notes,1,1) !Если искомая переменная ! найдена, то Scr:Message = 'Есть такая буква!' ! сообщить об этом . LEFT (строка, выравненная влево) LEFT(строка[,длина]) строка Строковая константа, переменная или выражение. длина Числовая константа, переменная или выражение, задающее длину возвращаемой строки. Если опущена, то длина результата равна длине СТРОКИ. Функция LEFT возвращает СТРОКУ, выравненную влево. Ведущие пробелы удаляются из СТРОКИ. Возвращаемый тип данных: STRING Пример: CompanyName = LEFT(CompanyName) !Название фирмы сдвинуть влево LEN (длина строки) LEN(строка) строка Строковая константа, переменная или выражение. Функция LEN возвращает длину СТРОКИ. Если параметр СТРОКА это метка переменной, то LEN вернет ЗАДАННУЮ ПРИ ОПИСАНИИ длину этой переменной. Числовые значения автоматически преобразуются в промежуточные строковые. Возвращаемый тип данных: LONG Пример: IF LEN(CLIP(Title) &' '& CLIP(First) &' '& CLIP(Last)) > 30 !Если полное ФИО не укладывается в заданную длину, Rpt:Name = CLIP(Title) &' '& SUB(First.1.1) &'.'& Last ! то вместо отчества используем инициал. ELSE Rpt:Name = CLIP(Title) &' '& CLIP(First) &' '& CLIP(Last) ! ну а если все в порядке, то поставим полное ФИО . Rpt:Title = CENTER(Cus:Name,LEN(Rpt:Title)) !Центрируем имя в заголовке LOWER (нижний регистр) LOWER(строка) строка Строковая константа, переменная или выражение для преобразования. Функция LOWER возвращает строку, в которой все буквы - строчные. (А.С.П. - Что не совсем верно для русского текста,с которым CLARION SoftWare ну никак не хочет дружить :( ) Возвращаемый тип данных: STRING Пример: Name = SUB(Name,1,1) & LOWER(SUB(Name,2,19)) !Все буквы имени, кроме первой, сделаем строчными NUMERIC (состоит ли строка только из цифр?) NUMERIC(строка) строка Строковая константа, переменная или выражение. Функция NUMERIC возвращает 1 (ИСТИНУ) если строка содержит разрешенное числовое значение. Она вернет 0 (ЛОЖЬ) если строка содержит нецифровые символы. Разрешенные символы, это цифры от 0 до 9, ведущий знак минус и десятичная точка. Возвращаемый тип данных: LONG Пример: IF NOT NUMERIC(PartNumber) !Если номер запчасти - не число, DO ChkValidPart !то проверим его на допустимость . !конец условия RIGHT (строка, выравненная вправо) RIGHT(строка[,длина]) строка Строковая константа, переменная или выражение. длина Числовая константа, переменная или выражение, задающее длину возвращаемой строки. Если пропущена, то длина результата равна длине СТРОКИ. Функция RIGHT возвращает строку, выравненную вправо. Хвостовые пробелы удаляются, затем строка дополняется слева ведущими пробелами до ДЛИНЫ. Возвращаемый тип данных: STRING Пример: Message = RIGHT(Message) !Сообщение сдвинуть вправо SUB (возвращает подстроку строки) SUB(строка,позиция,длина) строка Строковая константа, переменная или выражение. позиция Целочисленная константа, переменная или выражение. Ели ПОЗИЦИЯ положительна, то она задает номер символа от начала СТРОКИ, если отрицательная, то от конца СТРОКИ. длина Числовая константа, переменная или выражение, задающая количество возвращаемых символов. Функция SUB возвращает ДЛИНА символов из СТРОКИ, начиная с заданной ПОЗИЦИИ. Возвращаемый тип данных: STRING Пример: SUB('ABCDEFGHI',1,1) вернет 'A' SUB('ABCDEFGHI',-1,1) вернет 'I' SUB('ABCDEFGHI',4,3) вернет 'DEF' Extension = SUB(FileName,INSTRING('.',FileName,1,1),3) !Получаем расширение файла См. также: INSTRING UPPER (верхний регистр) UPPER(строка) строка Строковая константа, переменная или выражение для преобразования. Функция UPPER возвращает СТРОКУ, в которой все символы - заглавные. (А.С.П. - Что не совсем верно для русского текста, с которым CLARION SoftWare ну никак не хочет дружить :( ) Возвращаемый тип данных: STRING Пример: Name = UPPER(Name) !Все имя вывести на верхнем регистре VAL (код символа) VAL(символ) символ Однобайтная строка, содержащая СИМВОЛ. Функция VAL возвращает ASCII-код СИМВОЛА. Возвращаемый тип данных: LONG Пример: VAL('я') вернет 239 VAT('z') вернет 122 CharVal = VAL(StrChar) !Получить ASCII-код символа из StrChar БИТОВЫЕ ФУНКЦИИ JOKE: -Что такое бит? -Это байт за вычетом налогов. -Что такое байт? -[восемь раз объясняется, что такое бит] -А что же такое килобайт? -Ну, это очень долго объяснять... BAND (побитовое И - AND) BAND(значение,маска) значение Числовая константа, переменная или выражение, задающее битовое значение, на которое накладывается МАСКА. ЗНАЧЕНИЕ, при необходимости, преобразуется к типу LONG перед операцией. маска Числовая константа, переменная или выражение, задающее битовую маску. При необходимости, МАСКА преобразуется к типу LONG перед выполнением операции. Функция BAND сравнивает ЗНАЧЕНИЕ с МАСКОЙ, выполняя операцию ЛОГИЧЕСКОЕ И над каждым битом. Возвращается длинное целое, в котором единицы будут только в тех местах, где они были и в ЗНАЧЕНИИ и в МАСКЕ, в остальных местах будут нули. BAND обычно используется для выяснения значения одного или нескольких бит (0 или 1) в переменной. Возвращаемый тип данных: LONG
Пример: BAND(0110b,0010b) вернет 0010b !0110b = 6, 0010b = 2 RateType BYTE !Тип оклада Female EQUATE(0001b) !Маска для женщин Male EQUATE(0010b) !Маска для мужчин Over25 EQUATE(0100b) !Маска для тех, кто старше 25 лет CODE IF BAND(RateType,Female) | !Если женщина AND BAND(RateType,Over25 ! старше 25 лет, DO BaseRate ! то премия - обычная ELSIF BAND(RateType,Male) !Если мужчина, DO AdjBase ! то подправить размер премии . !End if BOR (побитовое ИЛИ - OR) BOR(значение,маска) значение Числовая константа, переменная или выражение, задающее битовое значение, на которое накладывается МАСКА. ЗНАЧЕНИЕ, при необходимости, преобразуется к типу LONG перед операцией. маска Числовая константа, переменная или выражение, задающее битовую маску. При необходимости, МАСКА преобразуется к типу LONG перед выполнением операции. Функция BOR сравнивает ЗНАЧЕНИЕ с МАСКОЙ, выполняя операцию ЛОГИЧЕСКОЕ ИЛИ над каждым битом. Возвращается длинное целое, в котором единице будут равны те биты, которые были единицами либо в ЗНАЧЕНИИ, либо в МАСКЕ либо и там и там, остальные биты будут нулями. BOR обычно используется для того, чтобы принудительно установить один или несколько битов переменной в единицу. Возвращаемый тип данных: LONG Пример: BOR(0110b,0010b) вернет 0110b !0110b = 6, 0010b = 2 RateType BYTE !Тип оклада Female EQUATE(0001b) !Маска для женщин Male EQUATE(0010b) !Маска для мужчин Over25 EQUATE(0100b) !Маска для тех, кто старше 25 лет CODE RateType = BOR(RateType,Over25) !Установить признак "стар- ! ше 25 лет" RateType = BOR(RateType,Male) !Установить признак "оклад ! мужчин" BXOR (Побитовое Исключающее ИЛИ - XOR) BXOR(значение,маска) значение Числовая константа, переменная или выражение, задающее битовое значение, на которое накладывается МАСКА. ЗНАЧЕНИЕ, при необходимости, преобразуется к типу LONG перед операцией. маска Числовая константа, переменная или выражение, задающее битовую маску. При необходимости, МАСКА преобразуется к типу LONG перед выполнением операции. Функция BXOR сравнивает ЗНАЧЕНИЕ с МАСКОЙ, выполняя операцию ЛОГИЧЕСКОЕ ИСКЛЮЧАЮЩЕЕ ИЛИ над каждым битом. Возвращается длинное целое, в котором в единицу будут установлены только те биты, которые были единицами и в ЗНАЧЕНИИ и в МАСКЕ. Те биты, которые не совпали в МАСКЕ и ЗНАЧЕНИИ, а также те, которые были нулями и там и там, будут нулями. BXOR обычно используется для переключения из 1 в 0 или наоборот одного или нескольких битов переменной. Возвращаемый тип данных: LONG Пример: BXOR(0110b,0010b) вернет 0100b !0110b=6, 0100b=4, 0010b=2 RateType BYTE !Тип оклада Female EQUATE(0001b) !Маска для женщин Male EQUATE(0010b) !Маска для мужчин Over25 EQUATE(0100b) !Маска для тех, кто старше 25 лет Over65 EQUATE(1100b) !Маска для тех, кто старше 65 лет CODE RateType = BXOR(RateType,Over65) !Инвертировать признак "стар- ! ше 65 лет" BSHIFT (побитовый сдвиг) BSHIFT(значение,счетчик) значение Числовая константа, переменная или выражение. При необходимости, преобразуется к типу LONG перед операцией. счетчик Числовая константа, переменная или выражение, задающее на сколько бит нужно сдвинуть ЗНАЧЕНИЕ. Если СЧЕТЧИК положителен, значение сдвигается ВЛЕВО, если отрицателен - то ВПРАВО. Функция BSHIFT сдвигает биты ЗНАЧЕНИЯ на СЧЕТЧИК битов. ЗНАЧЕНИЕ может быть сдвинуто ВЛЕВО (от младших битов к старшим) или ВПРАВО (от старших к младшим), освобождающиеся места заполняются нулями. (А.С.П. - можно сказать, что BSHIFT умножает (СЧЕТЧИК>0) или делит (СЧЕТЧИК<0) ЗНАЧЕНИЕ на 2 в степени СЧЕТЧИК. Скажем, чтобы умножить Х на 16 можно выполнить либо А=Х*16 либо А=BSHIFT(X,4), причем последнее выражение выполнится быстрее первого, поскольку обычно реализуется на уровне процессорной команды сдвига. В ФОРТЕ используется именно этот принцип) Возвращаемый тип данных: LONG Пример: BSHIFT(0110b,1) вернет 1100b BSHIFT(0110b,-1) вернет 0011b Varswitch = BSHIFT(20,3) !Умножаем на 8 Varswitch = BSHIFT(Varswitch,-2) !Делим на 4 (А.С.П. - когда я писал свое примечание, я еще не смотрел на две предыдущие строки :) Назад | Содержание | Вперед
Citforum.ru приглашает вас посетить семинары:
25 марта 2003 года, Москва
ИТ-бюджетирование в банковских учреждениях. 26 марта 2003 года, Москва
Как анализировать эффективность ИТ банковских учреждений. Практический опыт проведения работ. 27 марта 2003 года, Москва
ИТ в банковских учреждениях. Разработка стратегии развития ИС. 19-21 марта 2003 года, Москва
26-28 марта 2003, Санкт-Петербург.
Теория и практика обеспечения безопасности информационных систем 17 апреля 2003 года, Москва
6 марта и 24 апреля 2003, Санкт-Петербург.
"Практическое применение международного стандарта безопасности информационных систем ISO 17799" 8 апреля 2003 года, Москва
3 апреля 2003, Санкт-Петербург.
"Обеспечение комплексной информационной безопасности предприятия" 10 апреля 2003 г., Москва.
14 апреля 2003 г., Санкт-Петербург
"Анализ рисков информационных систем компаний" Рекомендуем CD Domina Security: Управление информационными рисками корпоративных ИС Internet/Intranet Коммерческая тайна и экономическая безопасность бизнеса Применение стандарта безопасности ISO 17799
Новые поступления в разделе "Подробно о лучших книгах": Компьютерные системы передачи данных, Вильям Столлингс Качество обслуживания в сетях IP, Шринивас Вегешна Цифровая связь: теоретические основы и практическое применение, Скляр Б.
Аутентификация: от паролей до открытых ключей, Дж. Уинзор Энциклопедия SQL. 3-е изд+CD, Грофф Дж., Вайнберг П. Современные операционные системы. Изд.2, Э. Таненбаум
Поиск Рубрикатор Форумы Новости сервера Учебный центр Книжный магазин Реклама на сервере <<< В начало | Наверх Быстрый переход >>> Internet-технологии Сетевые технологии Базы данных Операционные системы Программирование Аппаратные платформы Материалы конференций Пользователям и преподавателям Корпоративные ресурсы Книги, которые мы выбираем Комментарии: mailto:info@citforum.ru?Subject='From bottom of CIT FORUM' u="u266.74.spylog.com";d=document;nv=navigator;na=nv.appName;t="";p=1; sz=" width=88 height=31 "; hl=history.length;d.cookie="b=b";c=0; bv=Math.round(parseFloat(nv.appVersion)*100); if (d.cookie) c=1;n=(na.substring(0,2)=="Mi")?0:1; if((n==0)||(bv >= 300)){rn=Math.random();t=(new Date()).getTimezoneOffset();} else {rn=0;} z="p="+p+"&rn="+rn+"&t="+t+"&c="+c+"&hl="+hl; if (self != top) { fr=1;} else { fr=0;} r=escape(d.referrer);r1=""; sl="1.0";h=0; pl="";sl="1.1"; if((n==1) && (bv >= 300)) { for(var i = 0; i < nv.plugins.length; i++) pl += nv.plugins[i].name+":"; } j = (navigator.javaEnabled() ? "Y" : "N"); sl="1.2";s=screen;wh=s.width+'x'+s.height; px=(n==0)?screen.colorDepth:screen.pixelDepth;z+="&wh="+wh+"&px="+px; sl="1.3" y=""; y+=""; y+=""; y+=""; d.write(y); Copyright © Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.