CVL
From QB64 Wiki
The CVL function converts 4 byte GET or MKL$ 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: