From QB64 Wiki
Revision as of 21:32, 17 November 2011 by imported>Clippy
Jump to navigation Jump to search

The CVL function converts 4 byte STRING values to LONG numeric values.

Syntax: CVL(4-byte string)

  • Numeric values read from a RANDOM-access or BINARY disk file must be converted from ASCII string characters back into numbers if they are to be arithmetically manipulated.
  • LONG Integer values can be from -2147483648 to 2147483647.
  • CVL converts a 4 byte string created by MKL$ to a LONG integer numerical value.
  • CVI converts a 2-byte string created by MKI$ to an INTEGER numerical value.
  • CVS converts a 4-byte string created by MKS$ to a SINGLE-precision numerical value.
  • CVD converts an 8-byte string created by MKD$ to a DOUBLE-precision numerical value.
  • CV functions can only be used to convert values from MK$ string function values or data from BINARY files!

Example 1: 4 byte ASCII character strings show how CVL multipliers convert MKL$ values into a 4 byte LONG value.

PRINT CVL(CHR$(1) + STRING$(3, 0)) 'ASC(CHR$(1)) * 1 = 1 PRINT CVL(CHR$(0) + CHR$(1) + STRING$(2, 0)) 'ASC(CHR$(1)) * 256 = 256 PRINT CVL(STRING$(2, 0) + CHR$(1) + CHR$(0)) 'ASC(CHR$(1)) * 256 * 256 = 65536 PRINT CVL(STRING$(3, 0) + CHR$(1)) 'ASC(CHR$(1)) * 256 * 256 * 256 = 16777216

Example 2:

FIELD #1, 4 AS N$, 12 AS B$... GET #1 Y& = CVL(N$)

Explanation: Reads a field from file #1, and converts the first four bytes (N$) into a long integer value assigned to the variable Y&.
Since a long number can contain as many as ten ASCII characters (ten bytes), writing a file using MKL$ conversion, and reading with the CVL conversion, as many as six bytes per number recorded are saved on the storage medium.

See also:

Keyword Reference - Alphabetical
Keyword Reference - By Usage
Main Wiki Page