PRINT USING: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
(Created page with "The '''PRINT USING''' statement is used to PRINT formatted data to the Screen or a file using a STRING template. {{PageSyntax}} :: '''PRINT''' [''text$''{;|,}] '''USING''' ''template$''; ''variable''[; ...][{;|,}] {{Parameters}} * Literal or variable STRING ''text$'' can be placed between PRINT and USING or it can be included in the ''template''. * A semicolon or comma may follow the ''text'' to stop or tab the print cursor before the ''template''...")
 
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
The '''PRINT USING''' statement is used to [[PRINT]] formatted data to the Screen or a file using a [[STRING]] template.
The '''PRINT USING''' statement is used to [[PRINT]] formatted data to the Screen using a [[STRING]] template.




Line 6: Line 6:




{{Parameters}}
{{PageParameters}}
* Literal or variable [[STRING]] ''text$'' can be placed between PRINT and USING or it can be included in the ''template''.
* Literal or variable [[STRING]] ''text$'' can be placed between PRINT and USING or it can be included in the ''template''.
* A [[semicolon]] or [[comma]] may follow the ''text'' to stop or tab the print cursor before the ''template'' [[PRINT]].
* A [[semicolon]] or [[comma]] may follow the ''text'' to stop or tab the print cursor before the ''template'' [[PRINT]].
* The literal or variable [[STRING]] ''template'' should use the template symbols to display each variable [[type]] in the list following it.
* The literal or variable [[STRING]] ''template'' should use the template symbols to display each variable [[Variable Types|type]] in the list following it.
* The list of data ''variables'' used in the ''template'' are '''separated by semicolons''' after the template string value.  
* The list of data ''variables'' used in the ''template'' are '''separated by semicolons''' after the template string value.
* In '''QB64''' ONE [[semicolon]] or [[comma]] may follow the variable list to stop the print cursor for pending prints. QB only allowed a semicolon.
* In '''QB64''' ONE [[semicolon]] or [[comma]] may follow the variable list to stop the print cursor for pending prints. QB only allowed a semicolon.


Line 22: Line 22:
* '''WARNING: The numbers displayed are rounded so the actual values are never changed and are actually more accurate.'''
* '''WARNING: The numbers displayed are rounded so the actual values are never changed and are actually more accurate.'''


 
{{PrintUsingPlugin}}
{{PrintUsing}}




''Example 1:'' Printing formatted data using a predefined [[STRING|string]] template variable.
''Example 1:'' Printing formatted data using a predefined [[STRING|string]] template variable.
{{CodeStart}} '' ''
{{CodeStart}}
first$ = "Bobby": last$ = "Smith"
first$ = "Bobby": last$ = "Smith"
boxes% = 1510: sales! = 4530
boxes% = 1510: sales! = 4530
Line 33: Line 32:


{{Cl|PRINT USING}} tmp$; first$; last$; boxes%; sales!
{{Cl|PRINT USING}} tmp$; first$; last$; boxes%; sales!
{{CodeEnd}} '' ''
{{CodeEnd}}
{{OutputStart}}Salesperson: Bobby Smith  1,510  $4,530.00
{{OutputStart}}Salesperson: Bobby Smith  1,510  $4,530.00
{{OutputEnd}}
{{OutputEnd}}
Line 40: Line 39:


''Example 2:'' How to display formatting symbols as normal text using underscores in a PRINT USING template.
''Example 2:'' How to display formatting symbols as normal text using underscores in a PRINT USING template.
{{CodeStart}} '' ''
{{CodeStart}}
errcode = 35
errcode = 35
{{Cl|PRINT USING}} "Error ## occurred!!"; errcode
{{Cl|PRINT USING}} "Error ## occurred!!"; errcode
Line 49: Line 48:
{{OutputStart}}Error 35 occurred
{{OutputStart}}Error 35 occurred
Error 35 occurred!!
Error 35 occurred!!
{{OutputEnd}}  
{{OutputEnd}}
: ''Explanation:'' The first template will not print the exclamation points or error when the requested text parameters are omitted.
: ''Explanation:'' The first template will not print the exclamation points or error when the requested text parameters are omitted.


Line 58: Line 57:
{{Cl|PRINT USING}} ".####^^^^-"; -777777
{{Cl|PRINT USING}} ".####^^^^-"; -777777
{{Cl|PRINT USING}} "+.##^^^^"; 123
{{Cl|PRINT USING}} "+.##^^^^"; 123
{{Cl|PRINT USING}} "+.##^^^^^"; 123 '' ''
{{Cl|PRINT USING}} "+.##^^^^^"; 123
{{CodeEnd}}
{{CodeEnd}}
{{OutputStart}} 2.35E+02
{{OutputStart}} 2.35E+02
Line 65: Line 64:
+.12E+003
+.12E+003
{{OutputEnd}}
{{OutputEnd}}
: ''Explanation:'' Note how 5 carets in the bottom format expands the number of exponent digits to accommodate larger exponent values.  
: ''Explanation:'' Note how 5 carets in the bottom format expands the number of exponent digits to accommodate larger exponent values.




''Example 4:'' USING does not necessarily have to immediately follow PRINT, but it must follow it in the code line.
''Example 4:'' USING does not necessarily have to immediately follow PRINT, but it must follow it in the code line.
{{CodeStart}} '' ''
{{CodeStart}}
money = 12345.45
money = 12345.45
tmp$ = "$$#######,.##"
tmp$ = "$$#######,.##"


{{Cl|PRINT}} "I have this much money!"; {{Cl|PRINT USING|USING}} tmp$; money '' ''
{{Cl|PRINT}} "I have this much money!"; {{Cl|PRINT USING|USING}} tmp$; money
{{CodeEnd}}
{{CodeEnd}}
: ''Note:'' This can also be used to print the USING formatting characters outside of the template.
: ''Note:'' This can also be used to print the USING formatting characters outside of the template.




''See also:''
{{PageSeeAlso}}
* [[PRINT]], [[PRINT USING (file statement)|PRINT #, USING]]
* [[PRINT]], [[PRINT USING (file statement)|PRINT #, USING]]
* [[LPRINT]], [[LPRINT USING]]
* [[LPRINT]], [[LPRINT USING]]

Latest revision as of 20:28, 26 January 2024

The PRINT USING statement is used to PRINT formatted data to the Screen using a STRING template.


Syntax

PRINT [text${;|,}] USING template$; variable[; ...][{;|,}]


Parameters

  • Literal or variable STRING text$ can be placed between PRINT and USING or it can be included in the template.
  • A semicolon or comma may follow the text to stop or tab the print cursor before the template PRINT.
  • The literal or variable STRING template should use the template symbols to display each variable type in the list following it.
  • The list of data variables used in the template are separated by semicolons after the template string value.
  • In QB64 ONE semicolon or comma may follow the variable list to stop the print cursor for pending prints. QB only allowed a semicolon.


Usage:

  • The variables should be listed in the order that they are used in the template from left to right.
  • If the template string is omitted or symbols don't match the variable(s) an "Illegal Function Call" ERROR will occur!
  • No more than 25 # digit places are allowed in a template number or an error will occur.
  • Can convert numerical exponential or scientific notation values to normal decimal point values using less digits.
  • NOTE: If the numerical value exceeds the template's digit range a % symbol will appear in the leftmost digit area.
  • WARNING: The numbers displayed are rounded so the actual values are never changed and are actually more accurate.


   Table 5: The formatting symbols used by the [L]PRINT USING[#] commands.
  ┌───────┬────────────────────────────────────────────────────────────────┐
  │   &   │ Prints an entire string value. STRING length should be limited │
  │       │ as template width will vary.                                   │
  ├───────┼────────────────────────────────────────────────────────────────┤
  │ \   \ │ Denotes the start and end point of a fixed string area with    │
  │       │ spaces between(LEN = spaces + 2).                              │
  ├───────┼────────────────────────────────────────────────────────────────┤
  │   !   │ Prints only the leading character of a string value.           │
  ├───────┼────────────────────────────────────────────────────────────────┤
  │   #   │ Denotes a numerical digit. An appropriate number of digits     │
  │       │ should be used for values received.                            │
  ├───────┼────────────────────────────────────────────────────────────────┤
  │ ^^^^  │ After # digits prints numerical value in exponential E+xx      │
  │       │ format. Use ^^^^^ for E+xxx values. (1)                        │
  ├───────┼────────────────────────────────────────────────────────────────┤
  │   .   │ Period sets a number's decimal point position. Digits following│
  │       │ determine rounded value accuracy.                              │
  ├───────┼────────────────────────────────────────────────────────────────┤
  │  ,.Comma to left of decimal point, prints a comma every 3 used #  │
  │       │ digit places left of the decimal point.                        │
  ├───────┼────────────────────────────────────────────────────────────────┤
  │   +   │ Plus sign denotes the position of the number's sign. + or -    │
  │       │ will be displayed.                                             │
  ├───────┼────────────────────────────────────────────────────────────────┤
  │   -   │ Minus sign (dash) placed after the number, displays only a     │
  │       │ negative value's sign.                                         │
  ├───────┼────────────────────────────────────────────────────────────────┤
  │  $$   │ Prints a dollar sign immediately before the highest non-zero # │
  │       │ digit position of the numerical value.                         │
  ├───────┼────────────────────────────────────────────────────────────────┤
  │  **   │ Prints an asterisk in any leading empty spaces of a numerical  │
  │       │ value. Adds 2 extra digit positions.                           │
  ├───────┼────────────────────────────────────────────────────────────────┤
  │  **$  │ Combines ** and $$. Negative values will display minus sign to │
  │       │ left of $.                                                     │
  ├───────┼────────────────────────────────────────────────────────────────┤
  │   _Underscore preceding a format symbol prints those symbols as   │
  │       │ literal string characters.                                     │
  └───────┴────────────────────────────────────────────────────────────────┘
     Note: Any string character not listed above will be printed as a
           literal text character.

       (1) Any # decimal point position may be specified. The exponent is
           adjusted with significant digits left-justified.


Example 1: Printing formatted data using a predefined string template variable.

first$ = "Bobby": last$ = "Smith"
boxes% = 1510: sales! = 4530
tmp$ = "Salesperson: & &  #####,.   $$#####,.##"

PRINT USING tmp$; first$; last$; boxes%; sales!
Salesperson: Bobby Smith  1,510  $4,530.00

Explanation: The Salesperson: text precedes the formatted data. The name lengths will change the length of the string template accordingly so columns will not all line up. If \ \ was used, the columns would stay the same, but parts of some names might be lost. If the box or sales values exceed 3 digits, a comma is used in the value every 3 digits.


Example 2: How to display formatting symbols as normal text using underscores in a PRINT USING template.

errcode = 35
PRINT USING "Error ## occurred!!"; errcode
'now there are the !! at the end of the printed string
PRINT USING "Error ## occurred_!_!"; errcode
END 
Error 35 occurred
Error 35 occurred!!
Explanation: The first template will not print the exclamation points or error when the requested text parameters are omitted.


Example 3: Exponential notation is designated after the leading digits are formatted. Digit places determine rounded value displayed.

PRINT USING "##.##^^^^"; 234.56
PRINT USING ".####^^^^-"; -777777
PRINT USING "+.##^^^^"; 123
PRINT USING "+.##^^^^^"; 123
 2.35E+02
.7778E+06-
+.12E+03
+.12E+003
Explanation: Note how 5 carets in the bottom format expands the number of exponent digits to accommodate larger exponent values.


Example 4: USING does not necessarily have to immediately follow PRINT, but it must follow it in the code line.

money = 12345.45
tmp$ = "$$#######,.##"

PRINT "I have this much money!"; USING tmp$; money
Note: This can also be used to print the USING formatting characters outside of the template.


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link