назначение = источник
назначение | Должно быть меткой или переменной |
источник | Числовая или строковая константа, переменная, функция или выражение. |
Знак = присваивает значение ИСТОЧНИКа НАЗНАЧЕНИЮ; помещает значение выражения - ИСТОЧНИКа в переменную - НАЗНАЧЕНИЕ. Если ИСТОЧНИК и НАЗНАЧЕНИЕ являются разными типами данных, то результат зависит от Правил Преобразования Данных.
Пример:
Name = 'JONES' !Variable = string constant PI = 3.14159 !Variable = numeric constant Cosine = SORT(1-Sine*Sine) !Variable = functi on return value A = B + C + 3 !Variable = numeric expressio Name = CLIP(FirstName) &' ' Initial &'. '& LastName !Variable = string expression
См. также: Правила Преобразования Данных
назначение += источник назначение -= источник назначение *= источник назначение /= источник назначение ^= источник назначение %= источник
назначение | Должно быть меткой или переменной |
источник | Числовая или строковая константа, переменная, функция или выражение. |
Операторы присвоения-операции выполняют арифметические операции над переменной. Ниже, в примерах, операторы справа и слева функционально эквивалентны, хотя операторы присвоения-операции действуют более эффективно.
Пример:
Оператор присваивания Функциональный эквивалент A += 1 A = A + 1 A -= B A = A - B A *= -5 A = A * (-5) A /= 100 A = A / 100 A ^= I+1 A = ^(I + 1) A %= 7 A = A % 7
CLEAR(метка[,n])
метка | Метка переменной. |
n | Числовая константа; 1 или -1. Этот параметр задает значение, которым инициализируется переменная. Если n=1, то переменная получает максимально возможное для этого типа данных значение. Для STRING, PSTRING и CSTRING, это ASCII 255. Если n=-1, то переменная получает минимально возможное для данного типа данных значение. Для STRING, PSTRING и CSTRING это ASCII 0. |
Оператор CLEAR очищает переменную, указанную МЕТКой. Если n пропущено, то числовые переменные сбрасываются в нуль, а строки заполняются пробелами. Если метка принадлежит структуре GROUP, RECORD или QUEUE, то все переменные в этой структуре очищаются. Если переменная имеет атрибут DIM, то очищается целиком массив. Одиночный элемент массива не может быть очищен.
Пример:
CLEAR(Count) !Clear a variable CLEAR(Cus:Record) !Clear the record structure CLEAR(Amount,l) !Clear variable to highest possible value CLEAR(Amount,-I) !Clear variable to lowest possible
Язык Clarion производит автоматическую конверсию типов данных. Тем не менее, некоторые вариации могут породить несоответствие источника и назначения (source & destination). Присвоение "выходящего-за-рамки" значения приводит к непредсказуемым результатам
Типы данных PSTRING и CSTRING обрабатываются так же, как STRING, потому что они преобразуются в промежуточные значения типаSTRING для всех операций. Типы DATE и TIME преобразуются в Кларионовские Стандартные Дату и Время и обрабатываются как LONG.
Ниже приведены правила преобразования данных из ИСТОЧНИКа в НАЗНАЧЕНИЕ:
BYTE = SHORT BYTE = USHORT BYTE = LONG BYTE = ULONG
Знаковый бит ИСТОЧНИКа игнорируется. НАЗНАЧЕНИЕ получает младшие 8 бит ИСТОЧНИКа.
BYTE = DECIMAL BYTE = PDECIMAL BYTE = REAL BYTE = SREAL
Знаковый бит ИСТОЧНИКа игнорируется. НАЗНАЧЕНИЕ получает младшие 8 бит ИСТОЧНИКа. Дробная часть ИСТОЧНИКа отсекается.
BYTE = STRING BYTE = CSTRING BYTE = PSTRING
Если в строке только цифры, то НАЗНАЧЕНИЕ получает их значение.
SHORT = BYTEНАЗНАЧЕНИЕ получает значение ИСТОЧНИКа.
SHORT = USHORT SHORT = LONG SHORT = ULONG
НАЗНАЧЕНИЕ получает знак и младшие 15 бит ИСТОЧНИКа.
SHORT = DECIMAL SHORT = PDECIMAL SHORT = REAL SHORT = SREAL
НАЗНАЧЕНИЕ получает знак и младшие 15 бит ИСТОЧНИКа. Дробная часть ИСТОЧНИКа отсекается.
SHORT = STRING SHORT = CSTRING SHORT = PSTRING
ИСТОЧНИК должен быть набором цифр БЕЗ знаков форматирования. НАЗНАЧЕНИЕ получает знак и целую часть числа. Дробная часть ИСТОЧНИКа отсекается, хвостовые пробелы игнорируются.
USHORT = BYTEНАЗНАЧЕНИЕ получает значение ИСТОЧНИКа.
USHORT = SHORT USHORT = LONG USHORT = ULONGНАЗНАЧЕНИЕ получает младшие 16 бит ИСТОЧНИКа. Знак ИСТОЧНИКа игнорируется.
USHORT = DECIMAL USHORT = PDECIMAL USHORT = REAL USHORT = SREAL
НАЗНАЧЕНИЕ получает младшие 16 бит из целой части ИСТОЧНИКа. Дробная часть ИСТОЧНИКа отсекается и знак игнорируется.
USHORT = STRING USHORT = CSTRING USHORT = PSTRING
ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает целую часть числа. Дробная часть ИСТОЧНИКа отсекается, а знак и хвостовые пробелы игнорируются.
LONG = BYTE LONG = SHORT LONG = USHORT LONG = ULONGНАЗНАЧЕНИЕ получает знак и значение ИСТОЧНИКа.
LONG = DECIMAL LONG = PDECIMAL LONG = REAL LONG = SREAL
НАЗНАЧЕНИЕ получает знак и младшие 31 бит ИСТОЧНИКа. Дробная часть ИСТОЧНИКа отсекается.
LONG = STRING LONG = CSTRING LONG = PSTRING
ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак и целую часть числа. Десятичная часть ИСТОЧНИКа отсекается, а хвостовые пробелы игнорируются.
DATE = BYTE DATE = SHORT DATE = USHORT DATE = ULONG
НАЗНАЧЕНИЕ получает значение ИСТОЧНИКа в виде Кларионовской Стандартной Даты.
DATE = DECIMAL DATE = PDECIMAL DATE = REAL DATE = SREAL
НАЗНАЧЕНИЕ получает младшие 31 бит ИСТОЧНИКа в виде Кларионовской Стандартной Даты. Десятичная часть ИСТОЧНИКа отсекается.
DATE = STRING DATE = CSTRING DATE = PSTRING
ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает целую часть числа как Кларионовскую Стандартную Дату. Дробная часть ИСТОЧНИКа отсекается, а хвостовые пробелы игнорируются.
TIME = BYTE TIME = SHORT TIME = USHORT TIME = ULONG
НАЗНАЧЕНИЕ получает значение источника как Клaрионовское Стандартное Время.
TIME = DECIMAL TIME = PDECIMAL TIME = REAL TIME = SREAL
НАЗНАЧЕНИЕ получает младшие 31 бит ИСТОЧНИКа как Кларионовское Стандартное Время. Дробная часть ИСТОЧНИКа отсекается.
TIME = STRING TIME = CSTRING TIME = PSTRING
ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает целую часть ИСТОЧНИКа в виде Кларионовского Стандартного Времени. Дробная часть отсекается, а хвостовые пробелы игнорируются.
ULONG = BYTE ULONG = SHORT ULONG = USHORT ULONG = LONG
НАЗНАЧЕНИЕ получает младшие 32 бита ИСТОЧНИКа. Знак ИСТОЧНИКа игнорируется.
ULONG = DECIMAL ULONG = PDECIMAL ULONG = REAL ULONG = SREAL
НАЗНАЧЕНИЕ получает младшие 32 бита от целой части ИС- ТОЧНИКа. Дробная часть отсекается, а знак игнорирует- ся.
ULONG = STRING ULONG = CSTRING ULONG = PSTRING
ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает целую часть числа. Дробная часть отсекается, а знак и хвостовые пробелы игнорируются.
REAL = BYTE REAL = SHORT REAL = USHORT REAL = LONG REAL = ULONG
НАЗНАЧЕНИЕ получает как всю целую часть, так и знак ИСТОЧНИКа.
REAL = DECIMAL REAL = PDECIMAL REAL = SREAL
НАЗНАЧЕНИЕ получает знак, целую и дробные части ИСТОЧНИКа.
REAL = STRING REAL = CSTRING REAL = PSTRING
ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак, целую и дробную части числа. Хвостовые пробелы игнорируются.
SREAL = BYTE SREAL = SHORT SREAL = USHORT SREAL = LONG SREAL = ULONG
НАЗНАЧЕНИЕ получает знак и значение ИСТОЧНИКа.
SREAL = DECIMAL SREAL = PDECIMAL SREAL = REAL
НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧНИКа.
SREAL = STRING SREAL = CSTRING SREAL = PSTRING
ИСТОЧНИК должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак, целую и дробную части числа. Хвостовые пробелы игнорируются.
DECIMAL = BYTE DECIMAL = SHORT DECIMAL = USHORT DECIMAL = LONG DECIMAL = ULONG DECIMAL = PDECIMAL
НАЗНАЧЕНИЕ получает знак и значение ИСТОЧНИКа.
DECIMAL = REAL DECIMAL = SREAL
НАЗНАЧЕНИЕ получает знак и целую часть ИСТОЧНИКа, а так же старшие биты дробной части. Самая старшая часть дробной части (?) округляется в НАЗНАЧЕНИИ.
DECIMAL = STRING DECIMAL = CSTRING DECIMAL = PSTRING
Источник должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак, целую и дробную части числа. Хвостовые пробелы игнорируются.
PDECIMAL = BYTE PDECIMAL = SHORT PDECIMAL = USHORT PDECIMAL = LONG PDECIMAL = ULONG PDECIMAL = DECIMAL
НАЗНАЧЕНИЕ получает знак и значение ИСТОЧНИКа.
PDECIMAL = REAL PDECIMAL = SREAL
НАЗНАЧЕНИЕ получает знак и целую часть ИСТОЧНИКа, а так же старшие биты дробной части. Самая старшая часть дробной части (?) округляется в НАЗНАЧЕНИИ.
PDECIMAL = STRING PDECIMAL = CSTRING PDECIMAL = PSTRING
Источник должен быть набором цифр без символов форматирования. НАЗНАЧЕНИЕ получает знак, целую и дробную части числа. Хвостовые пробелы игнорируются.
STRING = BYTE STRING = SHORT STRING = USHORT STRING = LONG STRING = ULONG
НАЗНАЧЕНИЕ получает знак и неформатированное число. В НАЗНАЧЕНИИ, число выравнивается влево.
STRING = DECIMAL STRING = PDECIMAL STRING = REAL STRING = SREAL
НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧНИКа. В НАЗНАЧЕНИИ, число выравнивается влево.
CSTRING = BYTE CSTRING = SHORT CSTRING = USHORT CSTRING = LONG CSTRING = ULONG
НАЗНАЧЕНИЕ получает знак и неформатированное число. В НАЗНАЧЕНИИ, число выравнивается влево.
CSTRING = DECIMAL CSTRING = PDECIMAL CSTRING = REAL CSTRING = SREAL
НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧНИКа. В НАЗНАЧЕНИИ, число выравнивается влево.
PSTRING = BYTE PSTRING = SHORT PSTRING = USHORT PSTRING = LONG PSTRING = ULONG
НАЗНАЧЕНИЕ получает знак и неформатированное число. В НАЗНАЧЕНИИ, число выравнивается влево.
PSTRING = DECIMAL PSTRING = PDECIMAL PSTRING = REAL PSTRING = SREAL
НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧНИКа. В НАЗНАЧЕНИИ, число выравнивается влево.
Назад | Содержание | Вперед