A simple way would be just to use basic matchText() for each single
letter and regex matchText() for repeating letters.  P.*P will find
double Ps, P.*P.*P will find triple Ps etc. Seems to be relatively
fast but if you have very large data sets other alternatives would
need to be investigated.

in the message box:

put "ABCDEKLP" into X
put "ABCDEKLLLLMMOOPP" into Y
put 100000 into Z
put 0 into a
put 0 into b
put 0 into c
put 0 into d
put the millisec into tStart
repeat Z times
if (matchText(X, "A") AND matchText(X, "E") AND matchText(X, "L") AND
matchText(X, "P.*P")) then
   add 1 to a
else
  add 1 to b
end if
if (matchText(Y, "A") AND matchText(Y, "E") AND matchText(Y, "L") AND
matchText(Y, "P.*P")) then
  add 1 to c
else
 add 1 to d
end if
end repeat
put the millisec into tEnd
put "X Passed " & a & " times." & cr into msg
put "X Failed " & b & " times." & cr after msg
put "Y Passed " & c & " times." & cr after msg
put "Y Failed " & d & " times." & cr after msg
put Z & " repeats took " & tEnd - tStart & " ms" after msg

The above should take less than 1 sec but for a million repeats I got:

X Passed 0 times.
X Failed 1000000 times.
Y Passed 1000000 times.
Y Failed 0 times.
1000000 repeats took 1997 ms

NOTE: the above only works if the letters you are looking for can
appear in ANY order. If you need a specific order then you'd have to
regex matchText() for all searches, ie

if (matchText(X, "A.*E.*L.*P") AND matchText(X,"P.*P")) then

Yes, the P must appear in both searches to ensure a P has both an L
before it and a P after it.

HTH

On Wed, Sep 24, 2014 at 8:22 AM,  <la...@significantplanet.org> wrote:
> Hello,
>
> I have done a lot research and cannot find any way to do this:
>
> I have a string, "AELPP" and I want to see if all 5 of those letters are in 
> "search string"
>
> If search string is:  ABCDEKLP,   then NO it isn't because there are two P's 
> in the string I'm searching for.
>
> But if search string is:  ABCDEKLLLMMOOPP, then YES the string I'm searching 
> for is found in the search string.
>
> It is important to my program that I just find the 5 chars anywhere within 
> the search string and they do not have to be sequential in the search string.
>
> Thanks for any help,
> Larry
> _______________________________________________
> use-livecode mailing list
> use-livecode@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@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to