203b
<< <> >>

4. De definitie van PICTURE

: PICTURE ( ulo uhi adr1 len1 -- adr2 len2 )
  2>R
  <#
  BEGIN R> 1-                \ Positie in sjabloon
        S>D 0=
  WHILE >R 2R@ + C@          \ Karakter uit sjabloon
        [CHAR] # OVER =
        IF   DROP #          \ Een cijfer
        ELSE [CHAR] ? OVER =
             IF   DROP #S    \ De resterende cijfers
             ELSE HOLD
             THEN
        THEN
  REPEAT R> 2DROP
  #> ;
# ( ulo1 uhi1 -- ulo2 uhi2 ) "number sign"
Bepaal, gebruik makend van BASE, het laatste cijfer van het bitpatroon uhi1,ulo1 en plaats dat cijfer vooraan de String in wording. uhi2,ulo2 is uhi1,ulo1 zonder zijn laatste cijfer. Gebruik # alleen tussen <# en #>.

HOLD ( k -- )
Voeg vooraan de String in wording het karakter k toe. Gebruik HOLD alleen tussen <# en #>.

Voorbeelden:
) 2.34567 S" fl. ?.##"
) PICTURE TYPE [rtn] fl. 2345.67 ok

) 2.34567 S" C#-##"
) PICTURE TYPE [rtn] C5-67 ok

) -2.34567 S" C#-##
) PICTURE TYPE [rtn] C0-49 ok \ of C7-29 ok
PICTURE levert een String die slechts kort geldig is. Bij de meeste Forth-systemen zal hij overschreven worden zodra er weer een omzetting begint. Probeer eens
) 1234. S" ####" PICTURE 56 . TYPE [rtn]
>>