| Имя | Синтаксис | Описание | Длина
| 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] [BYTE,WORD,DWORD,QWORD] - Выравнивание. Члены типа будут располагаться по границам Байта(по умолчанию), Слова, Двойного и Учетверённого слова. При доступе к выравненному элементу будет пропускаться размер выравнивания минус байт. Пропуск: Байт - ничего, Слово - 1 Байт, Двойное слово - 3 Байта.Имя_Элемента [(диапазон)] AS Тип [Имя_элемента [(диапазон)] AS Имя_Типа] [...] END TYPE [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 Байта
| |
| Имя | Синтаксис | Описание | Длина
| 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 Преимуществом такого метода является удобство и высокая скорость создания интерфейса, а также уменьшение вероятности ошибок со стороны клиента. Недостатками являются более низкая скорость выполнения связей по сравнению с предопределённым заранее объектом и вероятность отсутствия поддержки требуемого интерфейса приёмником.
|