CVI
 
Преобразует число с плавающей запятой одинарной точности или строку в целочисленную переменную используя бинарную копию

Синтаксис

Declare Function CVI ( ByVal sng As Single ) As Integer
Declare Function CVI ( ByRef str As Const String ) As Integer
Declare Function CVI<bits> ( expr As DataType ) As Integer<bits>

Использование

result = CVI( sng )
result = CVI( str )
result = CVI<bits>( expr )

Параметры

sng
Single число с плавающей запятой с копией двоичной целочисленной переменной хранящейся в нем.
str
String с копией двоичной целочисленной переменной хранящейся в ней.
bits
Указывает размер возвращаемого целого типа. Типы и размеры expr будут зависеть от соответствующей вызываемой функции.
expr
Выражение, которое будет скопировано в Integer<bits>.

Возвращаемое значение

 Integer или Integer<bits> переменная, содержащая двоичную копию входного выражения.

Описание

Возвращает целое значение, используя двоичные данные, содержащиеся в Single, или String. Возвращается значение ноль (0) если строка содержит меньше символов, чем размер возвращаемого типа.

CVI используется для преобразования строки, созданной с помощью MKI.

Эта функция также может использоваться для преобразования 32-битных целочисленных значений из памяти или файлового буфера без необходимости структуры Type. Однако как и с типом структуры, особое внимание должны приниматься при использовании CVI для преобразования строк, считываемых из буфера.

CVI поддерживает необязательный параметр <bits> перед аргументом. Если bits = 16, CVShort будет вызываться; Если bits = 32, CVL будет вызываться; Если bits = 64, CVLongInt будет вызываться. Тип возвращаемого значения и типы принятых аргументов будут зависеть от того, какая функция вызывается. Смотрите страницу каждой функции для получения дополнительной информации.

Пример

Dim i As Integer, s As String
s = "ABCD"
i = CVI(s)
Print Using "s = ""&"""; s
Print Using "i = _&H&"; Hex(i)


Различия диалектов

  • В диалекте -lang qb, CVI ожидает строку 2 байта, так как целое число в QB только 16 бит. Используются только первые два байта строки, даже если строка окажется длиннее, чем два байта.
  • В диалекте -lang qb, CVI не будет принимать аргумент с плавающей запятой, так как целое число в QB только 16 бит и нет 16-битного типа данных с плавающей запятой. Вместо этого, CVI<32>/CVI<64> или CVL/CVLongInt может быть использован.

Отличия от QB

  • В QB возникает ошибка, если передаваемая строка меньше чем в два байта в длину.
  • QB не поддерживает аргументы с плавающей запятой.
  • QB не поддерживает параметр <bits>.

См. также