Formatting a number with two or more decimal points
Matt Maier
blueback09 at gmail.com
Tue Nov 10 22:12:54 EST 2015
This works with the two cases you described. I've heard that "repeat while"
isn't the fastest option, but it sounded like 6 repeats would be an extreme
case, so it probably doesn't matter.
on testingTesting
-- 10.26.12.47.38.52.71
-- 10.26 0.12 0.47 0.38 0.52 0.71
-- put "80.26.12" into tBlerg
-- put "10.26.12.47.38.52.71" into tBlerg
put "10.26" into tBlerg
put convertWordToNumbers(tBlerg) into tBlergBlerg
end testingTesting
function convertWordToNumbers pWordN
put pWordN into tWord
split tWord by "."
if the number of lines of the keys of tWord > 2 then
put tWord[1] & "." & tWord[2] into tAll
put 3 into tCounter
repeat while tCounter <= the number of lines of the keys of tWord
put " 0."& tWord[tCounter] after tAll
put tCounter + 1 into tCounter
end repeat
return tAll
end if
return pWordN
end convertWordToNumbers
On Tue, Nov 10, 2015 at 5:07 PM, Alejandro Tejada <capellan2000 at gmail.com>
wrote:
> Hi All,
>
> Recently, while updating Ian's SVGL
> to import some SVG archives that
> you could download from OpenClipart.org
> I found an error processing this number:
> 80.26.12
>
> This looks like a number with two decimal points
> but it's a shorthand for two numbers that some
> SVG editors use to save space by replacing two numbers
> like 80.26 0.12 with a single word like this: 80.26.12
> Notice that two characters: " 0" (a space and
> number zero) are missing.
>
> Quickly, I scripted a workaround like this:
>
> Function ConvertWordtoNumbers pWordN
>
> put pWordN into tWordNumber -- pWordN contains "80.26.12"
>
> if "." is in tWordNumber
> then
>
> replace "." with cr in tWordNumber
> if the number of lines of tWordNumber = 3
> then
> return line 1 of tWordNumber & "." & line 2 of tWordNumber && "0." & line 3
> of tWordNumber
> else return pWordN -- unchanged word or unchanged number
> end if
>
> else
> return pWordN
> end if
>
> end ConvertWordtoNumbers
>
> My question is:
> How could you rewrite this code
> to make it more elegant, faster,
> efficient and cover an extreme
> case like this:
> 10.26.12.47.38.52.71
> (6 numbers in a single word)
> 10.26 0.12 0.47 0.38 0.52 0.71
>
> Autotracing applications could produce
> curves as unusual as these.
>
> Thanks in advance!
>
> Al
> _______________________________________________
> 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