Array Coolness
Alex Tweedly
alex at tweedly.net
Mon Mar 2 16:51:10 EST 2009
Bob Sneidar wrote:
> Okay, I am now a staunch believer in Rev Arrays. I query every column
> in my app's SQL database (SELECT *), but now I need to reorder the
> columns, because the Listmagic widget has the capability of displaying
> some columns and not others simply by assigning a number to a
> property. All columns up to and including that number get displayed,
> all others are hidden, ok?
>
> So rather than rearranging my SQL data, I need to rearrange the data
> returned from my query instead. What I need is a way to go through all
> the columns and "move" every column I don't want displayed to the
> "end" of the array. So I decided I would put Rev Arrays to the test
> like so:
>
> put theColumns & return & theData into theTableData
> split theTableData by column
> set the itemdelimiter to tab
> put the number of items of theColumns into theColumnCount
> set the itemdelimiter to comma
> put theTableData[1] into theTableData[theColumnCount + 1]
> delete variable theTableData[1]
> combine theTableData by column
>
> theColumns is a tab delimited list of the SQL column names, and
> theData is a tab delimited list of the SQL data. After running this
> script, lo and behold, what was the first column in the array is now
> the last! THAT IS AWESOME! Great job Runtime Revolution!
>
Indeed it is awesome. I too love arrays.
But as a dedicated benchmarker, I'd have to point out that the more simple
set the itemdelimiter to Tab
put item 2 to -1 of theColumns & the itemdelimiter & item 1 of
theColumns &cr into theTableData
repeat for each line L in theData
put item 2 to -1 of L & the itemdelimiter & item 1 of L &cr
after theTableData
end repeat
will do the same thing, but roughly 40% faster (YMMV, since it is very
data dependent).
-- Alex.
More information about the use-livecode
mailing list