Insert and delete Commas

Jan Schenkel janschenkel at yahoo.com
Wed Sep 18 16:57:00 CDT 2002


Hi Ken,

Congratulations on yet another excellent regular
expression solution. It's just not an automated
response in my brain set ;-)
And what-do-you-know : Ken's version even fits in the
Starter Kit 10-lines limit. Now where did I put that
perl-book again...

*drowsy smile*

Jan Schenkel.

"As we grow older, we grow both wiser and more foolish
at the same time."  (De Rochefoucald)

--- Ken Ray <kray at sonsothunder.com> wrote:
> Or, using Regular Expressions (my fave):
> 
> function insertCommas pNumber
>     local tMinusHold,tMainNum,tDecimalHold
>     get
>
matchText(pNumber,"([-]?)([0-9]*)[\.]?([0-9]*)",tMinusHold,tMainNum,tDecimal
> Hold)
>     if it is true then  -- should be, but can't hurt
> to check
>         put "" into returnVal
>         if tDecimalHold <> "" then put "." before
> tDecimalHold
>         repeat with x = length(tMainNum) down to 1
>             if ((length(tMainNum) - x) mod 3 = 0)
> and (x <>
> length(tMainNum)) then \
>               put "," before returnVal
>             put char x of tMainNum before returnVal
>         end repeat
>         return tMinusHold & tMainNum & tDecimalHold
>     end if
> end insertCommas
> 
> And to explain the regEx (which is something I do
> every time I make a regex
> post), here's how it breaks up:
> 
> ([-]?)
>     Look for 0 or 1 occurrence ("?") of a hyphen
> ("[-]"), and return it
> ("()") into the first variable provided
> (tMinusHold).
> 
> ([0-9]*)
>     Then look for 0 or more occurrences ("*") of a
> number ("[0-9]"), and
> return it ("()") into the second variable provided
> (tMainNum).
> 
> [\.]?
>     Then look for 0 or 1 occurence ("?") of a
> decimal point ("\." - the "\"
> escapes this 'special' character so it's not
> misinterpreted). Since there's
> no parentheses, don't return anything, just use it
> as a delimiter.
> 
> ([0-9]*)
>     Finally, look for 0 or more occurrences ("*") of
> a number ("[0-9]"), and
> return it ("()") into the last variable provided
> (tDecimalHold).
> 
> Hope this helps,
> 
> Ken Ray
> Sons of Thunder Software
> Email: kray at sonsothunder.com
> Web Site: http://www.sonsothunder.com/
> 
> [snip]

__________________________________________________
Do you Yahoo!?
Yahoo! News - Today's headlines
http://news.yahoo.com



More information about the use-livecode mailing list