Sign in Join
Wiki copytemporary

Format function/fi: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Format function/fi

OldNewLine
1+Muotoilu [[Function/fi|funktio]] **format** muodostaa arvoja [[String/fi|merkkijonoksi]]. Format funktio löytyy käännösyksiköstä *[[SysUtils unit|SysUtils]]*. Katso [`sysutils.format`](https://www.freepascal.org/docs-html/rtl/sysutils/format.html) on line -dokumentaatiosta perusteellinen selitys.
2+
3+## Syntaksi
4+
5+Format on ylikuormitettu kahdella tavalla:
6+
7+``` pascal
8+function Format( const Fmt: String; const Args: array of Const) : String;
9+function Format( const Fmt: String; const Args: array of Const; const FormatSettings: TFormatSettings) : String;
10+```
11+
12+Fmt-merkkijono-argumentti sisältää *formaatin määrittelijöitä* tai *paikkamerkkejä* (esim. %d), jotka vastaavat ja korvataan tulos merkkijonossa Args-taulukon arvoilla. [[Const|array of const]] voi olla vaihtelevia määriä eri tyyppisiä arvoja, ja sovellustyyppejä varten käytettävät tyypit ovat [[Real/fi|Real]], [[Integer/fi|Integer]], [[Pointer/fi|Pointer]] ja [[String/fi|String]]-tyyppejä. [[TFormatSettings]] on [[Record/fi|tietue]], joka sisältää numeron, ajan, päivämäärän ja valuutan arvojen haluttuun muotoiluun liittyviä tietoja.
13+
14+Kunkin tietyn muotoilun määrittelijän muotoilusääntö on:
15+
16+`% [ArgumentIndex] ['-'] [width] [. precision] ArgumentType`
17+
18+| | |
19+|-----|-------------------|
20+| d | Decimal (integer) |
21+| e | Scientific |
22+| f | Fixed |
23+| g | General |
24+| m | Money |
25+| n | Number (floating) |
26+| p | Pointer |
27+| s | String |
28+| u | Unsigned decimal |
29+| x | Heksadesimaali |
30+
31+### Kokonaisluvun muotoilu
32+
33+| | |
34+|----|----|
35+|   %d | Tulostaa kokonaisluvun sellaisenaan. |
36+|   %8d | Tulostaa kokonaisluvun sellaisenaan. Jos numeroiden lukumäärä on pienempi kuin 8 niin luku on vasemmassa reunassa . |
37+|   %-8d | Tulostaa kokonaisluvun sellaisenaan. Jos numeroiden lukumäärä on pienempi kuin 8 niin luku on oikeassa reunassa (vie 8 merkkiä tilaa). |
38+|   %.8d | Tulostaa kokonaisluvun sellaisenaan. Jos numeroiden lukumäärä on pienempi kuin 8 niin luvun edessä on etunollat. |
39+
40+### Merkkijonon muotoilu
41+
42+| | |
43+|----|----|
44+|   %s | Tulostaa merkkijonon sellaisenaan. |
45+|   %8s | Tulostaa merkkijonon sellaisenaan. Jos merkkijonossa on vähemmän kuin 8 merkkiä, tuloste on siirretty oikealle. (right-justified). |
46+|   %-8s | Tulostaa merkkijonon sellaisenaan. Jos merkkijonossa on vähemmän kuin 8 merkkiä, tuloste on vasemmassa reunassa ja loput ovat välilyöntejä (left-justified). |
47+
48+## Esimerkki käytöstä
49+
50+``` pascal
51+procedure TForm1.Button1Click(Sender: TObject);
52+var
53+ title, title2,
54+ underline,
55+ line, row1, row2, row3,
56+ fmt : string;
57+ i : integer;
58+begin
59+ fmt := '%-12s';
60+ title := format(fmt,['Column 1']) + format(fmt,['Column 2']) ;
61+ for i := 1 to 12 do underline := underline + '-';
62+ underline := underline + underline ;
63+ fmt := '%-12d';
64+ line := format(fmt,[15]) + format(fmt,[8]) ;
65+ fmt := '%12s';
66+ title2 := format(fmt,['Column 1']) + format(fmt,['Column 2']) ;
67+ fmt := '%12d';
68+ row1 := format(fmt,[15]) + format(fmt,[8]) ;
69+ row2 := format(fmt,[1005]) + format(fmt,[809]) ;
70+ fmt := '%12.5d';
71+ row3 := format(fmt,[1005]) + format(fmt,[809]) ;
72+ Memo1.Lines.Add( title );
73+ Memo1.Lines.Add( underline );
74+ Memo1.Lines.Add( line );
75+ Memo1.Lines.Add( '' );
76+ Memo1.Lines.Add( title2 );
77+ Memo1.Lines.Add( underline );
78+ Memo1.Lines.Add( row1 );
79+ Memo1.Lines.Add( row2 );
80+ Memo1.Lines.Add( row3 );
81+end;
82+```
83+
84+Edellä olevat lausekkeet luovat joukon merkkijonoja, jotka näyttävät:
85+
86+`Column 1    Column 2    `\
87+`------------------------`\
88+`15          8           `
89+
90+`    Column 1    Column 2`\
91+`------------------------`\
92+`          15           8`\
93+`        1005         809`\
94+`       01005       00809`
95+
96+## Katso myös
97+
98+- [[doc:rtl/sysutils/format.html|Format]]
99+- [[doc:rtl/sysutils/floattostrf.html|FloatToStrF]]
100+- [[doc:rtl/sysutils/formatfloat.html|FormatFloat]]
101+- [[doc:rtl/sysutils/inttohex.html|IntToHex]] - Muuntaa kokonaisluvun [[Hexadecimal/fi|heksadesimaaliluvuksi]].
102+
103+---
104+*From the Free Pascal wiki, page "Format function/fi", as it stood on 2022-08-06 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history