Parameter checking
Ken Ray
kray at sonsothunder.com
Mon Jul 4 22:21:29 EDT 2005
On 7/4/05 9:05 PM, "Sarah Reichelt" <sarahr at genesearch.com.au> wrote:
> Secondly, has anyone any suggestions of the best way to do this? I
> can do it in a long-winded manner, but I feel sure that some RegEx
> wizard (Ken, are you listening), would be able to come up with a
> really neat way to solve this.
Yes, Sarah, I'm listening... :-)
> Here is pseudo-code is what I want to do:
>
> on sendSerialCommand p1, p2, p3
> -- p1 must be A-P or a-p
> if paramError(p1,"A-P|a-p") then exit to top
> -- p1 must be a number from 1 to 8
> if paramError(p2,"1-8") then exit to top
> -- p1 must be either S or D
> if paramError(p3,"S|D") then exit to top
>
> sendSerialString p1 & p2 & p3
> end sendSerialCommand
You can use RegEx to see if an incoming param matches a set of strings or
numbers. The basic rules are:
1) Put what you're looking for in brackets
2) If you actually have a range to check, you can use the hyphen between
(even for letters).
So, for example, if you are checking to see if p1 is between A and P (case
insensitive), you can do this:
if not matchText(p1,"(?i)[A-P]") then exit to top
OR this:
if not matchText(p1,"[A-Pa-p]") then exit to top
the (?i) means to be case insensitive. Here's a few more from your example:
if not matchText(p2,"[1-8]") then exit to top
if not matchText(p3,"[SD]") then exit to top -- note s,d won't match
if not matchText(p3,"(?i)[SD]") then exit to top -- matches SDsd
if not matchText(p3,"[SDsd]") then exit to top -- matches SDsd
HTH,
Ken Ray
Sons of Thunder Software
Web site: http://www.sonsothunder.com/
Email: kray at sonsothunder.com
More information about the use-livecode
mailing list