On 10/11/06 6:34 AM, "Bill Marriott" <[EMAIL PROTECTED]> wrote:

> You shouldn't try to change the tires while the car is moving, and you
> shouldn't try to modify the entity being used as the basis of a repeat loop.
> 
> For example, if you were to say
> 
> repeat with i = 1 to 20
> end repeat
> 
> you shouldn't try to modify i within the loop.
> 
> If you say
> 
> repeat for each line theLine in myVariable
> end repeat
> 
> you shouldn't try to modify myVariable within the loop.
> 
> There are probably many possibilities for your solution, but I would
> probably do it this way:
> 
> put empty into newContainer
> repeat for each line thisLine in vContainer
>   put doSomeFunction(item -2 of thisLine) into item -2 of thisLine
>   put thisLine & return after newContainer
> end repeat
> put char 1 to -2 of newContainer into vContainer

Actually, I try to avoid changing the value returned by the 'for each'
--original version
> put empty into newContainer
> repeat for each line thisLine in vContainer
>   put doSomeFunction(item -2 of thisLine) into item -2 of thisLine
>   put thisLine & return after newContainer
> end repeat
> put char 1 to -2 of newContainer into vContainer
>
--my preference is 
> put empty into newContainer
> repeat for each line thisLine in vContainer
   put doSomeFunction(item -2 of thisLine)&cr after newContainer
> end repeat
> put char 1 to -2 of newContainer into vContainer

I think the reason that 'for each' is so fast is that it scans the
"vContainer" memory space, returns those characters, and is not meant to be
modified.  My experience is that it is unpredictable to rely on the changed
value of 'thisLine'

Further, I don't reuse the name 'thisLine' in the next instance of a repeat
for each loop in the *same handler*, but change the name to avoid conflict,
such as 'thisline', 'thisline1', 'thisLine2'.  Again, unpredictable results
occasionally.

Jim Ault
Las Vegas


_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to