Типы данных в 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 stringSTRING * xСтрока фиксированной длины
Диапазон (если не массив):
Для общих переменных (STATIC и GLOBAL) - 16,777,216 байт
Для локальных переменных процедуры (LOCAL) - предел стека.
По умолчанию размер стека - 1 МБ. Его можно изменить директивой #STACK Число_Кратное_64кБ
Нет
ASCIIZ stringASCIIZ, ASCIZСтрока с нулём в конце
Строка фиксированной длины в которой последний символ код 0.
Диапазон: см. Строка фиксированной длины
Нет

Массивы
ИмяСинтаксисОписание
Array(x), (x TO y), (x:y)Массив
Одномерный или многомерный массив строчных, числовых и других типов.
Все массивы должны быть объявлены перед их использованием.
Запись типа (Мин:Мах) аналогична записи (Мин TO Мах)
Пример объявления пятимерного массива типа Integer:
DIM five%(5,5,10,20,3)

Переменный тип
ИмяСинтаксисОписаниеДлина
VariantVARIANTПеременного типа
Контейнер, котрый может содержать переменную большинства типов данных.
Предназначен для совместимости с другими языками и приложениями, преимущественно с COM-интерфейсом.
Тип "Вариант" не может быть использован напрямую. Для получения его значения нужно использовать функцию, соответствующую содержимому его контейнера. Например VARIANT# или VARIANT$.
Либо можно узнать тип содержимого контейнера с помощью VARIANTVT.
16 Байт

Пользовательские типы
ИмяСинтаксисОписание
USER TYPEType
...
End Type
Пользовательский тип
Составной тип. Может содержать в себе несколько стандартных типов, объявленных ранее пользовательских типов и объединений. Поддерживает все типы данных PB7, за исключением динамической строки и массива динамических строк.
TYPE Новый_Тип [BYTE|WORD|DWORD|QWORD] [FILL]
  Имя_Элемента [(диапазон)] AS Тип
  [Имя_элемента [(диапазон)] AS Имя_Типа]
  [...]
END TYPE
[BYTE,WORD,DWORD,QWORD] - Выравнивание. Члены типа будут располагаться по границам Байта(по умолчанию), Слова, Двойного и Учетверённого слова. При доступе к выравненному элементу будет пропускаться размер выравнивания минус байт. Пропуск: Байт - ничего, Слово - 1 Байт, Двойное слово - 3 Байта.
[FILL] - при совпадении длины выравнивания с длиной следующего элемента либо если следующий элемент строка фиксированной длины, то выравнивание производится не будет.
В Visual Basic используется тип выравнивания, который мжет быть эмулирован выравниванием DWORD FILL
Пользовательские типы должны объявляться в служебном пространстве вне процедур или функций.
UNIONUNION
...
END UNION
Объединение
Объединение по синтаксису подобно TYPE. В отличие от пользовательского типа, в котором под каждый элемент отводится определённое количество памяти, в объединении данные общие и доступны для всех элементов. Т.е. в завсиости от типа элемента можно получить кусок данных объединения, равный размеру элемента.
UNION Новое_Объединение
  Имя_Элемента [(диапазон)] AS Тип
  [Имя_элемента [(диапазон)] AS Имя_Типа]
  [...]
END UNION


Память
ИмяСинтаксисОписаниеДлина
PointerPTR, 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)
ИмяСинтаксисОписаниеДлина
GUIDGUIDГлобальный идентификатор уникальности
Специальная форма 16-байтной строки, использующаяся для работы с COM-объектами. Содержит 128-битный идентификатор уникальности COM-объекта.
Значение присваивается либо функцией GUID$, либо строковым эквивалентом.
DIM abc AS LOCAL GUID
abc = GUID$("{00000000-0000-0000-C000-000000000046}")
16 Байт

Объекты
ИмяСинтаксисОписание
InterfaceINTERFACE
...
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), "пользовательский интерфейс" должен быть объявлен в служебном пространстве (вне процедур и фунуций).
DispatchDISPATCHАвтоматический интерфейс.
Поздняя связь с COM-объектом.
Объявленый таким способом объект автоматически распознаётся приёмником (COM-сервером). Все методы и свойства такого объекта известны приёмнику и генерируются во время обращения к объекту. Приёмник должен поддерживать интерфейс iDispatch.
  DIM Объект AS DISPATCH
Преимуществом такого метода является удобство и высокая скорость создания интерфейса, а также уменьшение вероятности ошибок со стороны клиента. Недостатками являются более низкая скорость выполнения связей по сравнению с предопределённым заранее объектом и вероятность отсутствия поддержки требуемого интерфейса приёмником.

CyRax








Если вам необходим почтовый аккаунт, тогда почта на Qip.ru - ваш выбор. Для хранения фото и видео рекомендуем бесплатный фотохостинг.
Для студентов и абитуриентов: крупнейшая библиотека рефератов и сочинений. Скриншот экрана - просто и удобно с QIP Shot.