Be careful with repeat for each. You cannot change the content of the object or block you are repeating through. "Unexpected results" is an understatement. You need to work with a copy, making sure you don't add or remove the each element (each word, each line etc.) else you get out of sync.
Bob On Apr 27, 2011, at 11:09 PM, Scott Morrow wrote: > Hello Ron, > > Like Joe said, putting everything into a variable so you don't have to touch > the field as often is the first and biggest step to speeding things up. With > large lists, using the "repeat for each" structure may be faster. Her is an > example (untested off the cuff) Watch for line wraps. If you want the lines > to hilite as it check then you will need to use a slightly different > approach. While the script is running, nothing will happen visually. While > this can be scripted differently to have lines hilite as they are checked, it > will take a lot of extra time. > --------------------------------------------------- > on mouseUp > set the itemDelimiter to tab > put field "All" into tBigData -- use this to compare with field "Rural" data > put tBigData into tBigData2 -- we will change this data as matches are found > put field "Rural" into tSmallData > put 0 into tLineCounter -- init > put empty into tListOfLines -- init > repeat for each line tBigDataLine in tBigData > add 1 to tLineCounter > repeat for each line tSmallDataLine in tSmallData > if item 1 of tBigDataLine = item 1 of tSmallDataLine then > put "Rural" into item 4 of line tLineCounter of tBigData2 > put tLineCounter & CR after tListOfLines -- keep track of what > lines to colorize > else > put "-" into item 4 of line tLineCounter of tBigData2 > end if > end repeat > end repeat > put tBigData2 into field "All" -- update the text of the field > --colorize the lines > put token 1 to -1 of tListOfLines into tListOfLines -- trim > repeat for each line tLine in tListOfLines > set the textColor of line tLine of field "All" to "red" > end repeat > end mouseUp > --------------------------------------------------- > > Warmest regards, > > Scott Morrow > > Elementary Software > (Now with 20% less chalk dust!) > web http://elementarysoftware.com/ > email [email protected] > > > On Apr 27, 2011, at 9:02 PM, Joe Lewis Wilkins wrote: > >> Hi Ronald, >> >> You can speed things up immeasurably by put the content of the fields into >> variables and then make your comparisons between the vars. This is a >> universal truth. Always work with vars; not fields. >> >> HTH, >> >> Joe Lewis Wilkins >> Architect & Director of Product Development for GSI >> <www.glsysinc.com> >> >> >> >> >> >> >> >> >> On Apr 27, 2011, at 8:55 PM, Ronald Zellner wrote: >> >>> I have two data fields that have multiple tabbed columns, >>> I want to determine which items in the main field (1247 lines) also appear >>> in the second field (436 lines). >>> >>> Using this code to compare line by line: >>> >>> on mouseUp >>> >>> set the itemDelimiter to tab >>> repeat with x = 1 to the number of lines in field "All" -- there are 1247 >>> lines >>> >>> repeat with y = 1 to the number of lines in field "Rural" --there are >>> 436 lines >>> if item 1 of line x of field "All" = item 1 of line y of field >>> "Rural" then >>> put "Rural" into item 4 of line x of field "All" >>> set the textColor of line x of field "All" to "red" >>> exit repeat >>> else >>> put "-" into item 4 of line x of field "All" >>> end if >>> >>> end repeat >>> end repeat >>> end mouseUp >>> >>> >>> This seems to function properly, but >>> >>> 1. it is very, very slow >>> 2. The results do not show up until the whole set is completed, not as >>> each line is checked. >>> >>> Any thoughts on a better way to approach this? >>> >>> Ron >>> _______________________________________________ >>> use-livecode mailing list >>> [email protected] >>> Please visit this url to subscribe, unsubscribe and manage your >>> subscription preferences: >>> http://lists.runrev.com/mailman/listinfo/use-livecode >> >> _______________________________________________ >> use-livecode mailing list >> [email protected] >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > > > _______________________________________________ > use-livecode mailing list > [email protected] > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list [email protected] Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
