Главная   Документация   Файлы   Примеры   Статьи   Ссылки   Разработка IDE   Сайтостроители 

Разработка IDE >>>

Типы данных в Power Basic 7

Типы данных в 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
Преимуществом такого метода является удобство и высокая скорость создания интерфейса, а также уменьшение вероятности ошибок со стороны клиента. Недостатками являются более низкая скорость выполнения связей по сравнению с предопределённым заранее объектом и вероятность отсутствия поддержки требуемого интерфейса приёмником.


Прислал: CyRax
 
© MZX 2004

Hosted by uCoz