Outputs formatted text to the screen or output device
Syntax
Print [# filenum ,] [ printexpressionlist {,|;} ] Using formatstring ; [ expressionlist [ ; ] ]
Parameters
filenum
The file number of a file or device opened for
Output or
Append. (Alternatively
LPrint may be used where appropriate, instead of
Print #)
printexpressionlist
Optional preceding list of items to print, separated by commas (
,) or semi-colons (
;) (see
Print for more details).
formatstring
Format string to use.
expressionlist
List of items to format, separated by semi-colons (;).
Description
Print to screen various expressions using a format determined by the formatstring parameter. Internally, Print Using uses a buffer size of 2048 bytes: while it is highly unlikely that this buffer would be filled, it should be noted that output would be truncated should this limit be reached.
If no expression list is given, the format string will be printed up to the first special marker. Note that the semi-colon after formatstring is still necessary, even if no expression list is given.
The format string dictates how the expressions are to be formatted when output to the screen, indicated by the use of special marker characters. There are markers for formatting both string and numeric output:
String formatting
Marker | Formatting |
! | prints the first character of a string |
\ \ | prints as many characters of a string as occupied between the pair \ \ |
& | prints the entire string |
Numeric formatting
Marker | Formatting |
# | placeholder for either an integer digit, or a decimal digit if a decimal point precedes it |
, | placed after integer digit indicates groups of 3 digits should be separated by commas in fixed-point notation |
. | placed near # indicates place for the decimal point |
^^^^ | uses exponential notation (E+/-###) when placed after the digit characters |
+ | placed before/after the format string, controls whether the sign of a number is prepended/appended, and causes an explicit '+' sign to be printed for positive numbers |
- | placed after the format string, causes the sign of the number to be appended rather than prepended, appending a space/negative sign for positive/negative numbers |
$$ | placed at the start of integer digits, causes a dollar sign to be prepended to the number (after the sign if one is prepended) |
** | placed at the start of integer digits, causes any padding on the left to be changed from spaces to asterisks |
**$ | placed at the start of integer digits, pads on the left with asterisks, and prepends a dollar sign after the asterisks |
& | prints a number intelligently, using the exact number of digits required (new to version 0.21.0b) |
All of the special marker characters can be escaped by preceding them with the underscore character
"_", allowing them to be printed directly. For example,
"_!" is printed as
"!", and
"__" is printed as
"_".
If a numerical value cannot fit in the number of digits indicated by the format string, the formatting is adapted to fit the number, possibly switching to scientific notation, and the number is printed preceded by the percent
"%" character. E.g., the number
1234 with a
formatstring of
"##.##" would be printed as
"%1234.00".
All other characters within the format string are printed as they appear.
A new-line character is printed after the values in the expression list unless the expression list is followed by a semicolon (
;).
Example
Print Using "The value is #.## seconds"; 1.019
Print Using "The ASCII code for the pound sign (_#) is ###"; Asc("#")
Print Using "The last day in the year is & \ \"; 31; "December"
will produce the output:
The value is 1.02 seconds
The ASCII code for the pound sign (#) is 35
The last day in the year is 31 Dec
Differences from QB
- QB didn't allow "&" to be used for printing numbers.
See also