PRINT USING: Difference between revisions
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 | The '''PRINT USING''' statement is used to [[PRINT]] formatted data to the Screen using a [[STRING]] template. | ||
Line 6: | Line 6: | ||
{{ | {{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}} | |||
{{ | |||
''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. | ||
{{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