[ANN] Democratic Revolution

Mark Brownell gizmotron at earthlink.net
Fri Aug 29 00:54:37 EDT 2003


On Thursday, August 28, 2003, at 10:25  PM, Geoff Canyon wrote:

> function offsetsOf pSearch,pString -- returns a list of the offsets of 
> pSearch in pString
>   put empty into tReturn
>   put 0 into tOffset
>   repeat
>     put offset(pSearch,pString,tOffset) + tOffset into tNewOffset
>     if tNewOffset is tOffset then exit repeat
>     put tNewOffset & space after tReturn
>     put tNewOffset into tOffset
>   end repeat
>   delete char -1 of tReturn
>   return tReturn

Like this: from my frogBreath.rev speed test from a few weeks ago...
put: go url "http://www.gizmotron.org/frogbreath.rev" into the message 
window with a active internet connection.

on mouseUp
   global theArray
   put "" into theArray
   put the customProperty of button "Button 4" into tZap
   -------- this gets the XML document from the customProperty
   put the milliseconds into tStartTime
   put 0 into tStart
   put 1 into tElementNum
   repeat with x = 1 to 235
     put offset("<record>",tZap,tStart) into tNum
     put (tNum + tStart) into tStart
     if tNum < 1 then exit repeat
     put tStart into gWordArray1[tElementNum]
     add 1 to tElementNum
   end repeat
   put 0 into tStart
   put 1 into tElementNum
   repeat with x2 = 1 to 235
     put offset("</record>",tZap,tStart) into tNum
     put (tNum + tStart) into tStart
     if tNum < 1 then exit repeat
     put tStart into gWordArray2[tElementNum]
     add 1 to tElementNum
   end repeat
   repeat with x3 = 1 to 235
     put gWordArray1[x3] into zip
     put gWordArray2[x3] into zap
     put char (zip + 8) to (zap - 1) of tZap into zapped
     put zapped into theArray[x3]
   end repeat
   put (the milliseconds - tStartTime) into btTwoTime
   --answer
   put "PNLP to theArray took -- " & btTwoTime & return into field 
"mainText"
   put theArray[1] & return after field "mainText"
   put theArray[2] & return after field "mainText"
   put theArray[3] & return after field "mainText"
end mouseUp

I know that it can be done in transcript. I just want a faster array 
built in whatever language Revolution is built in. Maybe the string 
class in C++ has some find char capabilities that can build the arrays 
real fast without the need for a repeat loop in transcript. This was a 
wish list item I was looking for.

If I needed to do a parallel numerical search of 3 to 10 megabytes of 
text data then a loop in transcript would start to lag over the speed 
of a C++ native function. I've proven this with the TextCruncher Xtra 
for Director. This Xtra was coded using C or C++ to add speed to string 
searches. It has a feature findAll() and creates an array in half the 
time as the transcript loop. I'm just looking for some speed here. I've 
moved on from Director.

Mark Brownell




More information about the use-livecode mailing list