PRINT USING: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(5 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}}
{{PrintUsingTable}}




''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