Difference between revisions of "Str"

From Lazarus wiki
Jump to navigationJump to search
(rewrite)
m (→‎invocation: say second parameter needs to be a variable →‎formatting: insert link to DecimalSeparator)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{Str}}
 
{{Str}}
  
The [[Procedure|procedure]] {{Doc|package=RTL|unit=system|identifier=str|text=<syntaxhighlight lang="pascal" inline>str</syntaxhighlight>}} converts an ordinal or [[Real|<syntaxhighlight lang="pascal" inline>real</syntaxhighlight>]] type value to a string representation thereof.
+
The [[Procedure|<syntaxhighlight lang="pascal" inline>procedure</syntaxhighlight>]] {{Doc|package=RTL|unit=system|identifier=str|text=<syntaxhighlight lang="pascal" inline>str</syntaxhighlight>}} converts an ordinal or [[Real|<syntaxhighlight lang="pascal" inline>real</syntaxhighlight>]] type value to a string representation thereof.
 +
It is a [[UCSD Pascal]] extension that was picked up and generalized by [[Borland Pascal]].
 +
The [[FPC|FreePascal compiler]] supports it, too, as described here.
  
 
== invocation ==
 
== invocation ==
Line 9: Line 11:
 
The first parameter has to be an ordinal or real type expression.
 
The first parameter has to be an ordinal or real type expression.
 
The second parameter specifies the destination.
 
The second parameter specifies the destination.
It has to be of the type [[String|<syntaxhighlight lang="pascal" inline>string</syntaxhighlight>]] (or an <syntaxhighlight lang="pascal" inline>array[dimension] of char</syntaxhighlight>).
+
It has to be a [[Variable parameter|variable]] of the type [[String|<syntaxhighlight lang="pascal" inline>string</syntaxhighlight>]] (or an <syntaxhighlight lang="pascal" inline>array[dimension] of char</syntaxhighlight>).
  
 
The first parameter may optionally be followed by a [[Colon|colon]] and an [[Integer|integer]] expression.
 
The first parameter may optionally be followed by a [[Colon|colon]] and an [[Integer|integer]] expression.
Line 24: Line 26:
 
Enumerated type values will be left-justified, numeric values will be right-justified.
 
Enumerated type values will be left-justified, numeric values will be right-justified.
  
<syntaxhighlight lang="pascal" inline>Str</syntaxhighlight> cannot produce decimal numbers containing a [[Comma|comma]] as a radix mark.
+
<syntaxhighlight lang="pascal" inline>Str</syntaxhighlight> cannot produce decimal numbers containing a [[Comma|comma]] as a [[DecimalSeparator|radix mark]].
  
 
<syntaxhighlight lang="pascal" inline>Str</syntaxhighlight> only produces numbers to the base of ten.
 
<syntaxhighlight lang="pascal" inline>Str</syntaxhighlight> only produces numbers to the base of ten.
Line 31: Line 33:
  
 
== see also ==
 
== see also ==
* {{Doc|package=RTL|unit=system|identifier=writestr|text=<syntaxhighlight lang="pascal" inline>writeStr</syntaxhighlight>}} which does very same operation, but accepts an “infinite” number of arguments
+
* the standardized [[WriteStr|<syntaxhighlight lang="pascal" inline>writeStr</syntaxhighlight> <syntaxhighlight lang="pascal" inline>procedure</syntaxhighlight>]] which does very same operation, but accepts an “infinite” number of arguments
 
* [[Val|<syntaxhighlight lang="pascal" inline>val</syntaxhighlight>]] which performs the reverse operation
 
* [[Val|<syntaxhighlight lang="pascal" inline>val</syntaxhighlight>]] which performs the reverse operation
 +
* [https://BorlandPascal.FanDom.com/wiki/String_operations String operations] in ''BorlandPascal Fandom Wiki''

Latest revision as of 18:48, 5 March 2023

Deutsch (de) English (en) русский (ru)

The procedure str converts an ordinal or real type value to a string representation thereof. It is a UCSD Pascal extension that was picked up and generalized by Borland Pascal. The FreePascal compiler supports it, too, as described here.

invocation

The formal signature of str cannot be written in Pascal, hence a description follows:

Str requires two parameters. The first parameter has to be an ordinal or real type expression. The second parameter specifies the destination. It has to be a variable of the type string (or an array[dimension] of char).

The first parameter may optionally be followed by a colon and an integer expression. This will determine the minimum width of the generated string representation. However, bear in mind if the destination variable is a fixed-length string, no more characters than its maximum capacity can be stored. In this case any surplus characters will be clipped.

If the first parameter is a real expression, the parameter may be followed by another colon and integer after the first colon and integer specifying the minimum width. This number, however, will determine the number of decimal places after the radix mark.

formatting

Specifying a second formatting for the real number representation will disable the usual scientific notation.

Enumerated type values will be left-justified, numeric values will be right-justified.

Str cannot produce decimal numbers containing a comma as a radix mark.

Str only produces numbers to the base of ten. FPC’s standard run-time library provides the functions binStr, octStr, and hexStr, which produce string representations of integers according to base of two, eight and sixteen respectively. Real values cannot be easily represented in other bases.

see also

  • the standardized writeStr procedure which does very same operation, but accepts an “infinite” number of arguments
  • val which performs the reverse operation
  • String operations in BorlandPascal Fandom Wiki