Number to text
André Bisseret
andre.bisseret at wanadoo.fr
Thu Dec 9 09:37:07 EST 2010
Thanks a lot John for sharing this handler ; I added it in my docs, might be usefull ;-))
Just a small modification:
Some cases were not processed as expected ; for example
212 returned "two hundred and ten two"
351 returned "three hundred and eleven"
So I added the case where char 2 of fld 1 = 1 and char 3 of fld 1 <> 0
At the beginning of the case 3 in order it be processed before the case char 2 of fld 1 > 0.
Thanks again
Best regards from Grenoble
André
Here is the script:
----------------------
on mouseUp
local singles,mixed,tens,charcount,theTextNumber,
----------------------
put ("one","two","three","four","five","six","seven","eight","nine") into singles
put ("eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen") into mixed
put ("ten","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety") into tens
put the number of chars of fld 1 into charcount
switch charcount
case 1
if char 1 of fld 1 = 0 then
put "Zero" into theTextNumber
else
put item (char charcount of fld 1) of singles into theTextNumber
end if
break
case 2
if char 1 of fld 1 = 1 and char 2 of fld 1 = 0 then
put "Ten" into theTextNumber
exit switch
end if
if char 1 of fld 1 = 1 and char 2 of fld 1 > 0 then
put item (char 2 of fld 1) of mixed into theTextNumber
exit switch
end if
if char 1 of fld 1 > 1 and char 2 of fld 1 = 0 then
put item (char 1 of fld 1) of tens into theTextNumber
exit switch
end if
if char 1 of fld 1 > 1 and char 2 of fld 1 > 0 then
put item (char 1 of fld 1) of tens && item (char 2 of fld 1) of singles into theTextNumber
exit switch
end if
break
case 3
switch
case char 2 of fld 1 = 1
if char 3 of fld 1 <> 0 then
put item (char 1 of fld 1) of singles && "hundred and" && item (char 3 of fld 1) of mixed into theTextNumber
exit switch
end if
if char 3 of fld 1 = 0 then
put item (char 1 of fld 1) of singles && "hundred and" && item (char 2 of fld 1) of tens into theTextNumber
exit switch
end if
break
case char 2 of fld 1 = 0
if char 3 of fld 1 = 0 then
put item (char 1 of fld 1) of singles && "hundred" into theTextNumber
exit switch
end if
if char 3 of fld 1 > 0 then
put item (char 1 of fld 1) of singles && "hundred and" && item (char 3 of fld 1) of singles into theTextNumber
exit switch
end if
break
case char 2 of fld 1 > 0
if char 3 of fld 1 = 0 then
put item (char 1 of fld 1) of singles && "hundred and" && item (char 2 of fld 1) of tens && item (char 3 of fld 1) of singles into theTextNumber
exit switch
end if
if char 3 of fld 1 = 1 then
put item (char 1 of fld 1) of singles && "hundred and" && item (char 2 of fld 1) of tens && item (char 3 of fld 1) of singles into theTextNumber
exit switch
end if
if char 3 of fld 1 > 1 then
put item (char 1 of fld 1) of singles && "hundred and" && item (char 2 of fld 1) of tens && item (char 3 of fld 1) of singles into theTextNumber
exit switch
end if
if char 3 of fld 1 > 0 then
put item (char 1 of fld 1) of singles && "hundred and" && item (char 3 of fld 1) of mixed into theTextNumber
exit switch
end if
break
end switch
end switch
put theTextNumber into fld 2
end mouseUp
-----------------------
Le 9 déc. 2010 à 02:21, John Dixon a écrit :
>
> Oops... I made a mess of it the first time around... (blushing)
>
> on mouseUp
>
> put ("one","two","three","four","five","six","seven","eight","nine") into singles
> put ("eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen") into mixed
> put ("ten","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety") into tens
>
> put the number of chars of fld 1 into charcount
>
> switch charcount
>
> case 1
> if char 1 of fld 1 = 0 then
> put "Zero" into theTextNumber
> else
> put item (char charcount of fld 1) of singles into theTextNumber
> end if
> break
>
> case 2
> if char 1 of fld 1 = 1 AND char 2 of fld 1 = 0 then
> put "Ten" into theTextNumber
> exit switch
> end if
>
> if char 1 of fld 1 = 1 AND char 2 of fld 1 > 0 then
> put item (char 2 of fld 1) of mixed into theTextNumber
> exit switch
> end if
>
> if char 1 of fld 1 > 1 AND char 2 of fld 1 = 0 then
> put item (char 1 of fld 1) of tens into theTextNumber
> exit switch
> end if
>
> if char 1 of fld 1 > 1 AND char 2 of fld 1 > 0 then
> put item (char 1 of fld 1) of tens && item (char 2 of fld 1) of singles into theTextNumber
> exit switch
> end if
> break
>
> case 3
> if char 2 of fld 1 = 0 AND char 3 of fld 1 = 0 then
> put item (char 1 of fld 1) of singles && "hundred" into theTextNumber
> exit switch
> end if
>
> if char 2 of fld 1 = 0 AND char 3 of fld 1 > 0 then
> put item (char 1 of fld 1) of singles && "hundred and" && item (char 3 of fld 1) of singles into theTextNumber
> exit switch
> end if
>
> if char 2 of fld 1 > 0 AND char 3 of fld 1 = 0 then
> put item (char 1 of fld 1) of singles && "hundred and" && item (char 2 of fld 1) of tens && item (char 3 of fld 1) of singles into theTextNumber
> exit switch
> end if
>
> if char 2 of fld 1 > 0 AND char 3 of fld 1 > 1 then
> put item (char 1 of fld 1) of singles && "hundred and" && item (char 2 of fld 1) of tens && item (char 3 of fld 1) of singles into theTextNumber
> exit switch
> end if
>
> if char 2 of fld 1 > 0 AND char 3 of fld 1 > 0 then
> put item (char 1 of fld 1) of singles && "hundred and" && item (char 3 of fld 1) of mixed into theTextNumber
> exit switch
> end if
>
> break
> end switch
>
> put theTextNumber into fld 2
> end mouseUp
>
> That should go up to 999...
>
>> Date: Wed, 8 Dec 2010 17:30:23 -0500
>> Subject: Number to text
>> From: hershrev at syp2u4c.com
>> To: use-revolution at lists.runrev.com
>>
>> Hi any Idea on how to go about calculating numbers to text eg. 100, One
>> Hundred, ?
>> Thanks, Hershel
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list