|
Типы данных в Power Basic 7 |
Целые числа со знаком
Имя |
Синтаксис |
Описание |
Длина |
Integer |
%, INTEGER |
Обычное целое Диапазон: от -32,768 до 32,767 |
2 Байта |
Long-integer |
&, LONG |
Длинное целое Диапазон: от -2,147,483,648 до 2,147,483,647 |
4 Байта |
Quad-integer |
&&, QUAD |
Учетверённое целое Диапазон: от -9.22x10^18 до +9.22x10^18 |
8 Байт |
Целые числа без знака
Имя |
Синтаксис |
Описание |
Длина |
Byte |
?, BYTE |
Байт Диапазон: от 0 до 255 |
1 Байт |
Word |
??, WORD |
Слово Диапазон: от 0 до 65,535 |
2 Байта |
Double-word |
???, DWORD |
Двойное слово Диапазон: от 0 до 4,294,967,295 |
4 Байта |
Дробные числа (с плавающей точкой)
Имя |
Синтаксис |
Описание |
Длина |
Single-precision |
!, SINGLE |
Одинарной точности Диапазон: от 8.43x10^-37 до 3.37x10^38 |
4 Байта |
Double-precision |
#, DOUBLE |
Двойной точности Диапазон: от 4.19x10^-307 до 1.67x10^308 |
8 Байт |
Extended-precision |
##, EXT |
Повышеной точности Диапазон: от 3.4x10^-4932 до 1.2x10^4932 |
10 Байт |
Дробные числа (с фиксированой точкой)
Имя |
Синтаксис |
Описание |
Длина |
Currency |
@, CUR/CURRENCY |
Валюта Формат числа: Целое.1234 Диапазон: от -9.22x10^14 до +9.22x10^14 |
8 Байт |
Extended-currency |
@@, CUX/CURRENCYX |
Расширенная валюта Формат числа: Целое.12 Диапазон: от 3.4x10^-4932 до 1.2x10^4932 |
8 Байт |
Строки
Имя |
Синтаксис |
Описание |
Длина |
String |
$, STRING |
Строка переменной длины Диапазон: от 0 до 2 ГБ (2^31) символов |
4 Байта |
Fixed-length string |
STRING * x |
Строка фиксированной длины Диапазон (если не массив): Для общих переменных (STATIC и GLOBAL) - 16,777,216 байт Для локальных переменных процедуры (LOCAL) - предел стека. По умолчанию размер стека - 1 МБ. Его можно изменить директивой #STACK Число_Кратное_64кБ |
Нет |
ASCIIZ string |
ASCIIZ, ASCIZ |
Строка с нулём в конце Строка фиксированной длины в которой последний символ код 0. Диапазон: см. Строка фиксированной длины |
Нет |
Массивы
Имя |
Синтаксис |
Описание |
Array |
(x), (x TO y), (x:y) |
Массив Одномерный или многомерный массив строчных, числовых и других типов. Все массивы должны быть объявлены перед их использованием. Запись типа (Мин:Мах) аналогична записи (Мин TO Мах) Пример объявления пятимерного массива типа Integer: DIM five%(5,5,10,20,3) |
Переменный тип
Имя |
Синтаксис |
Описание |
Длина |
Variant |
VARIANT |
Переменного типа Контейнер, котрый может содержать переменную большинства типов данных. Предназначен для совместимости с другими языками и приложениями, преимущественно с COM-интерфейсом. Тип "Вариант" не может быть использован напрямую. Для получения его значения нужно использовать функцию, соответствующую содержимому его контейнера. Например VARIANT# или VARIANT$. Либо можно узнать тип содержимого контейнера с помощью VARIANTVT. |
16 Байт |
Пользовательские типы
Имя |
Синтаксис |
Описание |
USER TYPE |
Type ... End Type |
Пользовательский тип Составной тип. Может содержать в себе несколько стандартных типов, объявленных ранее пользовательских типов и объединений. Поддерживает все типы данных PB7, за исключением динамической строки и массива динамических строк.
TYPE Новый_Тип [BYTE|WORD|DWORD|QWORD] [FILL] Имя_Элемента [(диапазон)] AS Тип [Имя_элемента [(диапазон)] AS Имя_Типа] [...] END TYPE [BYTE,WORD,DWORD,QWORD] - Выравнивание. Члены типа будут располагаться по границам Байта(по умолчанию), Слова, Двойного и Учетверённого слова. При доступе к выравненному элементу будет пропускаться размер выравнивания минус байт. Пропуск: Байт - ничего, Слово - 1 Байт, Двойное слово - 3 Байта. [FILL] - при совпадении длины выравнивания с длиной следующего элемента либо если следующий элемент строка фиксированной длины, то выравнивание производится не будет. В Visual Basic используется тип выравнивания, который мжет быть эмулирован выравниванием DWORD FILL Пользовательские типы должны объявляться в служебном пространстве вне процедур или функций. |
UNION |
UNION ... END UNION |
Объединение Объединение по синтаксису подобно TYPE. В отличие от пользовательского типа, в котором под каждый элемент отводится определённое количество памяти, в объединении данные общие и доступны для всех элементов. Т.е. в завсиости от типа элемента можно получить кусок данных объединения, равный размеру элемента.
UNION Новое_Объединение Имя_Элемента [(диапазон)] AS Тип [Имя_элемента [(диапазон)] AS Имя_Типа] [...] END UNION |
Память
Имя |
Синтаксис |
Описание |
Длина |
Pointer |
PTR, POINTER |
Указатель. Переменная этого типа используется для хранения адресов памяти других переменных. Объявляется в паре с любым другим типом данных. Длина указателя равна длине этого типа. Пример доступа к байтам строки через указатель: DIM A AS STRING, B AS BYTE PTR A="DEMO" : B=STRPTR(A) MSGBOX CHR$(@B) : MSGBOX CHR$(@B[1]) |
4 Байта |
Тип Globally Unique Identifier (GUID)
Имя |
Синтаксис |
Описание |
Длина |
GUID |
GUID |
Глобальный идентификатор уникальности Специальная форма 16-байтной строки, использующаяся для работы с COM-объектами. Содержит 128-битный идентификатор уникальности COM-объекта. Значение присваивается либо функцией GUID$, либо строковым эквивалентом. DIM abc AS LOCAL GUID abc = GUID$("{00000000-0000-0000-C000-000000000046}") |
16 Байт |
Объекты
Имя |
Синтаксис |
Описание |
Interface |
INTERFACE ... END INTERFACE |
Пользовательский интерфейс. Ранняя связь с COM-объектом Ручной способ объявления объекта перед отправкой COM-серверу. При выборе такого способа объявления, источнику (COM-клиенту) необходимо указать все методы и свойтва объекта (GET, LET, SET).INTERFACE DISPATCHНовый_Интерфейс MEMBER {CALL|GET|SET|LET} Имя_члена <Идентификатор> ([[OPTIONAL [IN|OUT|INOUT]] Имя_Параметра <Идентификатор> [AS Тип] [,...]]) [AS {vartype | interface}] [...] END INTERFACE Преимуществом такого метода является высокая скорость выполнения свзяей. Недостатками являются скорость создания интерфейса и возможные ошибки при объявлении.
INTERFACE DISPATCH WordApplication MEMBER GET ... ... END INTERFACE FUNCTION PBMAIN DIM oWord AS WordApplication SET oWord = NEW WordApplication IN "Word.Application" END FUNCTION Подобно пользовательскому типу (TYPE), "пользовательский интерфейс" должен быть объявлен в служебном пространстве (вне процедур и фунуций). |
Dispatch |
DISPATCH |
Автоматический интерфейс. Поздняя связь с COM-объектом. Объявленый таким способом объект автоматически распознаётся приёмником (COM-сервером). Все методы и свойства такого объекта известны приёмнику и генерируются во время обращения к объекту. Приёмник должен поддерживать интерфейс iDispatch. DIM Объект AS DISPATCH Преимуществом такого метода является удобство и высокая скорость создания интерфейса, а также уменьшение вероятности ошибок со стороны клиента. Недостатками являются более низкая скорость выполнения связей по сравнению с предопределённым заранее объектом и вероятность отсутствия поддержки требуемого интерфейса приёмником. |
|
|