Документация по Clarion


ПРАВИЛА ПРЕОБРАЗОВАНИЯ ДАННЫХ


Язык 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
НАЗНАЧЕНИЕ получает знак, целую и дробную части ИСТОЧНИКа. В НАЗНАЧЕНИИ, число выравнивается влево.


Содержание раздела