mirror of
https://github.com/QB64Official/qb64.git
synced 2024-09-28 11:17:47 +00:00
91 lines
3.9 KiB
Text
91 lines
3.9 KiB
Text
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''[; ...][{;|,}]
|
|
|
|
|
|
{{PageParameters}}
|
|
* 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 [[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.
|
|
* In QB64 one [[semicolon]] or [[comma]] may follow the variable list to stop the print cursor for pending prints. QB only allowed a semicolon.
|
|
|
|
|
|
{{PageDescription}}
|
|
* 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 Codes|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.
|
|
|
|
|
|
{{PrintUsing}}
|
|
|
|
|
|
{{PageQBasic}}
|
|
* QBasic limited the number of specified digit positions to 24; QB64 has no such restriction.
|
|
|
|
|
|
{{PageExamples}}
|
|
''Example 1:'' Printing formatted data using a predefined [[STRING|string]] template variable.
|
|
{{CodeStart}} '' ''
|
|
first$ = "Bobby": last$ = "Smith"
|
|
boxes% = 1510: sales! = 4530
|
|
tmp$ = "Salesperson: & & #####,. $$#####,.##"
|
|
|
|
{{Cl|PRINT USING}} tmp$; first$; last$; boxes%; sales!
|
|
{{CodeEnd}} '' ''
|
|
{{OutputStart}}Salesperson: Bobby Smith 1,510 $4,530.00
|
|
{{OutputEnd}}
|
|
''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.
|
|
{{CodeStart}}
|
|
errcode = 35
|
|
{{Cl|PRINT USING}} "Error ## occurred!"; errcode
|
|
'the ! is now displayed at the end of the printed string
|
|
{{Cl|PRINT USING}} "Error ## occurred_!"; errcode
|
|
{{CodeEnd}}
|
|
{{OutputStart}}Error 35 occurred
|
|
Error 35 occurred!
|
|
{{OutputEnd}}
|
|
: ''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.
|
|
{{CodeStart}}
|
|
{{Cl|PRINT USING}} "##.##^^^^"; 234.56
|
|
{{Cl|PRINT USING}} ".####^^^^-"; -777777
|
|
{{Cl|PRINT USING}} "+.##^^^^"; 123
|
|
{{Cl|PRINT USING}} "+.##^^^^^"; 123 '' ''
|
|
{{CodeEnd}}
|
|
{{OutputStart}} 2.35E+02
|
|
.7778E+06-
|
|
+.12E+03
|
|
+.12E+003
|
|
{{OutputEnd}}
|
|
: ''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.
|
|
{{CodeStart}} '' ''
|
|
money = 12345.45
|
|
tmp$ = "$$#######,.##"
|
|
|
|
{{Cl|PRINT}} "I have this much money!"; {{Cl|PRINT USING|USING}} tmp$; money '' ''
|
|
{{CodeEnd}}
|
|
{{OutputStart}}
|
|
I have this much money! $12,345.45
|
|
{{OutputEnd}}
|
|
: ''Note:'' This can also be used to print the USING formatting characters outside of the template.
|
|
|
|
|
|
{{PageSeeAlso}}
|
|
* [[PRINT]], [[PRINT USING (file statement)|PRINT #, USING]]
|
|
* [[LPRINT]], [[LPRINT USING]]
|
|
|
|
|
|
{{PageNavigation}}
|