[REBOL] Re: [Nifty Function of the Day] Pad
From: g:santilli:tiscalinet:it at: 15-Aug-2003 12:57
Hi Andrew,
On Friday, August 15, 2003, 11:53:18 AM, you wrote:
AJM> Pad: function [
AJM> "Pads a value with leading zeroes or a specified fill character."
AJM> Value [string! number!] Length [integer!]
AJM> /Fill Character [char!] "Optional Fill Character".
AJM> ] [Field] [
AJM> if not string? Value [
AJM> Value: form Value
AJM> ]
AJM> if none? Character [
AJM> Character: #"0"
AJM> ]
AJM> insert/dup Field: copy "" Character Length
AJM> change/part Field head reverse Value length? Value
AJM> head reverse Field
AJM> ]
pad: func [
"Pads a value with leading zeroes or a specified fill character."
Value [string! number!] Length [integer!]
/Fill Character [char!] "Optional Fill Character."
] [
if not string? Value [Value: form Value]
head insert
insert/dup
make string! 2 + Length
any [Character #"0"]
Length - length? Value
Value
]
pad: func [
"Pads a value with leading zeroes or a specified fill character."
Value [string! number!] Length [integer!]
/Fill Character [char!] "Optional Fill Character."
] [
copy skip
insert
insert/dup
clear ""
any [Character #"0"]
Length
Value
negate Length
]
(The latter truncates the value too, if it's longer than Length.)
Regards,
Gabriele.
--
Gabriele Santilli <[g--santilli--tiscalinet--it]> -- REBOL Programmer
Amiga Group Italia sez. L'Aquila --- SOON: http://www.rebol.it/