I think you should not use @pData, just pData should be enough. You’re not using it to return the data but are modifying by splitting but not combining the data.
regards, Chris Heidecker Op 5 sep. 2014, om 20:37 heeft Michael Doub <miked...@gmail.com> het volgende geschreven: > just to complete your library, here is a function that will extract the > listed column in the order that you > specify but it does not modify the original data. > > -= Mike > > > > function extractColumns @pData,pColsToReturn,pDelim > -- Extract specified columns from a table in order > -- Syntax: extractColumns <data>,<cols>[,<delim>] > -- data: Specifies the data to parse. > -- cols: A comma separated list of columns or column ranges to be > returned in order > -- for example "2,7,5" > -- or a accending column range: "3-5" > -- of a decending column range: "5-3" > -- or a combination "2,4-5,7,11-9" > -- delim: Optional column separator for example "," or "|" > -- if unspecified, defaults to tab. > -- based on a handler by Hugh Senior and Peter M. Brigham, Use-LC list > > -- requires getItem() > > if pColsToReturn = empty then return pData > repeat for each item pCol in pColsToReturn > if "-" is in pCol then > put getItem(pCol,1,"-") into firstColNbr > put getItem(pCol,2,"-") into lastColNbr > if firstColNbr < lastColNbr then > repeat with i = firstColNbr to lastColNbr > put i & comma after pColsToReturnExpanded > end repeat > else > repeat with i = firstColNbr down to lastColNbr > put i & comma after pColsToReturnExpanded > end repeat > end if > else > put pCol & comma after pColsToReturnExpanded > end if > end repeat > put char 1 to -2 of pColsToReturnExpanded into pColsToReturn > if pDelim = empty then put tab into pDelim > set the columnDelimiter to pDelim > split pData by column > put item 2 of extents(pData) into tMax > repeat for each item n in pColsToReturn > add 1 to x > put pData[n] into rData[x] > end repeat > combine rData by column > return rData > end extractColumns > > > On Sep 5, 2014, at 1:51 PM, Michael Doub <miked...@gmail.com> wrote: > >> Here is an even more general version: >> >> function deleteColumns pData,pColsToDelete,pDelim >> -- delete specified columns from a table >> -- Syntax: deleteColumns <data>,<cols>[,<delim>] >> -- data: Specifies the data to parse. >> -- cols: A comma separated list of columns or column ranges to be >> removed, >> -- for example "2,5,7" >> -- or a column range: "3-5" >> -- or a combination "2,4-5,7,9-11," >> -- delim: Optional column separator for example "," or "|" >> -- if unspecified, defaults to tab. >> -- based on a handler by Hugh Senior and Peter M. Brigham, Use-LC list >> >> -- requires getItem() >> >> if pColsToDelete = empty then return pData >> repeat for each item pCol in pColsToDelete >> if "-" is in pCol then >> put getItem(pCol,1,"-") into firstColNbr >> put getItem(pCol,2,"-") into lastColNbr >> repeat with i = firstColNbr to lastColNbr >> put i & comma after pColsToDeleteExpanded >> end repeat >> else >> put pCol & comma after pColsToDeleteExpanded >> end if >> end repeat >> put char 1 to -2 of pColsToDeleteExpanded into pColsToDelete >> if pDelim = empty then put tab into pDelim >> set the columnDelimiter to pDelim >> split pData by column >> put item 2 of extents(pData) into tMax >> repeat with n=1 to tMax >> if n is NOT among the items of pColsToDelete 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 deleteColumns >> >> function getItem tList,tIndex,tDelim >> -- returns item # tIndex of tList, given itemdelimiter = tDelim >> -- could just "get item tIndex of tList" in the calling handler but >> -- then have to set and restore the itemDelimiter, so this is less hassle >> -- defaults to tDelim = comma >> >> if tDelim = empty then put comma into tDelim >> set the itemdelimiter to tDelim >> return item tIndex of tList >> end getItem >> >> >> >> On Sep 5, 2014, at 10:58 AM, Peter M. Brigham <pmb...@gmail.com> wrote: >> >>> Peter M. Brigham >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode