203a
<< <> >>

203

Die Programmiersprache Forth
home
Über PICTURE zur Ausgabe von Zahlen in einem bestimmten Format und über HEXA BINA DECI zur gelegentlichen Ausgabe einer Zahl in einem anderen Zahlensystem.

Zahlen ausgeben II

3. PICTURE oder das Ausgeben über Schablonen

Mitunter wollen Sie Zahlen in einem Format ausgeben, das die Punkt-Befehle nicht beherrschen. Das können Sie dann jederzeit mit den Worten <# # SIGN HOLD #S #> selbst programmieren. Es wäre aber nicht ungeschickt, ein flexibles Wort an der Hand zu haben, das genau das fertig bringt. Ich schlage vor, ein solches Wort PICTURE zu nennen.
PICTURE ( ulo uhi adr1 len1 -- adr2 len2 )
Es erwartet eine doppeltgenaue Zahl auf dem Stack und darüber hinaus die Adresse und die Länge des Strings, der als Schablone oder Vorgabefeld angibt, wie die doppeltgenaue Zahl in einen String umgesetzt werden soll.

Ein paar Beispiele. In der ersten Spalte stehen die Schablonenstrings, in Spalte zwei und drei deren Auswirkung bei Anwendung auf 1234.5678 und 9.5 als doppeltgenaue Zahlen.
Schablonenstring  1234.5678        9.5
----------------  ---------        ---
S" #####"         45678            00095
S" F#.#.#.#"      F5.6.7.8         F0.0.9.5
S" ##/##/##"      34/56/78         00/00/95
S" ? # #"         123456 7 8       0 9 5
S" -#+"           -8+              -5+
S" ##,# km"       67,8 km          09,5 km
S" EUR ?.##"      EUR 123456.78    EUR 0.95
Besondere Bedeutung in dem Schablonenfeld haben der Gartenzaun und das Fragezeichen: Andere Zeichen des Schablonenfeldes werden buchstabengetreu übernommen.
Bemerkung: Die umzuwandelnde Zahl wird als Unsigned aufgefasst.
>>