How To: Manage columns of data (was Re: How To: Delete columns of data)
Alex Shaw
alex at harryscollar.com
Sat Sep 6 09:00:48 EDT 2014
Nice!
alex
On 6/09/2014 7:44 pm, FlexibleLearning.com wrote:
> Peter: Thank you for adding column ranges.
> Mike: Thank you for the column extraction handler.
>
> I believe this summarises our efforts to date. It includes column ranges and
> the ability to either delete or extract columns of data from a table. I
> accept that optimisation has been compromised in favour of code brevity when
> extracting columns, but the time overhead is negligible.
>
> function manageColumns pData,pCols,pAction,pDelim
> -- Purpose: To delete or extract specified columns from a table
> -- Syntax: manageColumns <data>,<cols>,<action>[,<delim>]
> -- data: Specifies the data to parse
> -- cols: A comma separated list of columns or column ranges to be
> removed or extracted
> -- for example "2,5,7"
> -- or a column range: "3-5"
> -- or a combination "2,4-5,7,9-11,"
> -- action: Either "delete" or "extract"
> -- delim: Optional column separator for example "," or "|"
> -- if unspecified, defaults to TAB
> -- By: Hugh Senior, based on handlers by Michael Doub, based on a handler
> by Peter M. Brigham, based on a handler by Hugh Senior, Use-LC list
>
> if pCols ="" then return pData
> if pDelim <>"" then set the columnDelimiter to pDelim
> repeat for each item tCol in pCols
> if "-" is in tCol then
> set the itemDel to "-"
> repeat with i = item 1 of tCol to item -1 of tCol
> put i & comma after pColsExpanded
> end repeat
> set the itemDel to comma
> else
> put tCol & comma after pColsExpanded
> end if
> end repeat
> put char 1 to -2 of pColsExpanded into pCols
> split pData by column
> put item 2 of extents(pData) into tMax
> repeat with n=1 to tMax
> if pAction="delete" then get (n is NOT among the items of pCols)
> else get (n is among the items of pCols)
> if it then
> add 1 to x
> put pData[n] into pData[x]
> end if
> end repeat
> repeat with n=x+1 to tMax
> delete local pData[n]
> end repeat
> combine pData by column
> return pData
> end manageColumns
>
>
>
> Hugh Senior
> FLCo
>
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>
More information about the use-livecode
mailing list