Making the move...
Jim Ault
JimAultWins at yahoo.com
Fri Mar 24 13:19:14 EST 2006
On 3/21/06 4:55 PM, "Sarah Reichelt" <sarah.reichelt at gmail.com> wrote:
> The alternatives that I see are to use script local variables or to
> pass an empty parameter by reference and have the function fill it.
> Does anyone have any other ideas or recommendations?
Here is another way that you could take advantage of 'for each' and use one
function, scanning the database one time, returning multiple results in one
variable, without using an array.
on scan
--define var dbTable
put dbScanner(dbTable) into dbEssence
set the itemdel to "^"
put item 1 of dbEssence into summer
put item 2 of dbEssence into lister
put item 3 of dbEssence into chimps
end scan
function dbScanner @dbTable
set the itemDel to tab --if this is correct
repeat for each line LNN in dbTable
put "," & item 6 of LNN after itemsToSum
put item 4 of LNN & cr after listofItem4
if LNN contains "circus monkey" then
put LNN & cr after monkeyLines
end if
end repeat
get sum(itemsToSum)
filter listofItem4 without empty
filter monkeyLines without empty
return it & "^" & \
listofItem4 & "^" & \
monkeyLines
end dbScanner
Jim Ault
Las Vegas
On 3/21/06 4:55 PM, "Sarah Reichelt" <sarah.reichelt at gmail.com> wrote:
> On 3/21/06, Geoff Canyon <gcanyon at inspiredlogic.com> wrote:
>> Do you have an example? I agree that if you end up passing in a
>> handful of arguments by reference, you haven't accomplished much by
>> breaking out the routine. The question is if there isn't a better way
>> to slice the routine, where that wouldn't be necessary.
>>
>
> OK, I have a better example. Say I have a data set and I need to loop
> through it and extract three different pieces of information e.g. a
> list of the 4th column in each line, a list of lines that match a
> certain set of criteria, and a cumulative total obtained by adding a
> certain column in each line.
>
> Each of these could be done in a separate function, but that would
> mean looping through the data set three times. With a large data set,
> it is significantly faster to loop once, filling all three new
> variables in the single loop. If I separate this off into a separate
> function, then I need a way of passing multiple results back.
>
> The alternatives that I see are to use script local variables or to
> pass an empty parameter by reference and have the function fill it.
> Does anyone have any other ideas or recommendations?
>
> Sarah
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
More information about the use-livecode
mailing list