Table field

Michael Doub mikedoub at gmail.com
Sun Jul 12 08:14:31 EDT 2015


Thanks Peter.   I just added it to the MasterLibrary.

https://www.dropbox.com/s/3wpwn3hfbmpl7sk/MasterLibrary.livecode?dl=0

Regards,
    Mike


On 7/12/15 7:05 AM, Peter M. Brigham wrote:
> Here's a general function for extracting a column or columns from a tab-del table, based on a handler by Mike Doub for deleting columns. IIRC there was an exchange in this list re bug checking and generally tuning it up, and the handler I saved in my library came out of that discussion.
>
> -- Peter
>
> Peter M. Brigham
> pmbrig at gmail.com
> http://home.comcast.net/~pmbrig
>
> ---------------
>
> function getColumns pData, pColNbrs, pDelim
>     -- Extract specified columns from a table in order
>     --    pData: a tab-delimited table (delim may be overridden with pDelim)
>     --    pColNbrs: A comma separated list of columns or column ranges
>     --       to be returned in the order indicated, for example "2,7,5"
>     --       or an ascending column range: "3-5"
>     --       or a descending column range: "5-3"
>     --       or a combination "7,4-5,2,11-9"
>     -- based on deleteColumns() by Michael Doub et. al., use-LC list
>     
>     if pColNbrs = empty then return pData
>     if pDelim = empty then put tab into pDelim
>     -- first expand column ranges
>     repeat for each item pCol in pColNbrs
>        put offset("-",pCol) into dashPos
>        if dashPos = 0 then
>           put pCol & comma after tColsToReturn
>        else if dashPos = 1 then
>           -- for column numbers like -1, -2, etc.
>           put howMany(pDelim,line 1 of pData) + 1 into nbrItems
>           put pCol + 1 + nbrItems & comma after tColsToReturn
>        else
>           -- a column range
>           put char 1 to dashPos-1 of pCol into firstColNbr
>           put char dashPos+1 to -1 of pCol into lastColNbr
>           if firstColNbr < lastColNbr then
>              repeat with i = firstColNbr to lastColNbr
>                 put i & comma after tColsToReturn
>              end repeat
>           else
>              repeat with i = firstColNbr down to lastColNbr
>                 put i & comma after tColsToReturn
>              end repeat
>           end if
>        end if
>     end repeat
>     delete char -1 of tColsToReturn
>     -- then extract columns in order
>     set the columnDelimiter to pDelim
>     split pData by column
>     repeat for each item n in tColsToReturn
>        add 1 to x
>        put pData[n] into rData[x]
>     end repeat
>     combine rData by column
>     return rData
> end getColumns
>
>
> On Jul 11, 2015, at 7:56 PM, JB wrote:
>
>> If you want to get all the items in a column
>> Richard Gaskin wrote a excellent function
>> specifically for that.  Like all of his code it
>> is fast.
>>
>> John Balgenorth
>>
>>
>> On Jul 11, 2015, at 4:45 PM, dunbarx at aol.com wrote:
>>
>>> The colunDelimiter will not. in and of itself, extract, say, the third item of all the lines in a tab and return formatted dataSet. DataGrids have this sort of functionality built-in, but that is still constructed from standard LC techniques.
>>> As per the above, if you wanted that third item all down the table, you have to loop through each line and dig it out, as others have already said.
>>>
>>>
>>> Craig Newman
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: Peter Haworth <pete at lcsql.com>
>>> To: How to use LiveCode <use-livecode at lists.runrev.com>
>>> Sent: Sat, Jul 11, 2015 6:36 pm
>>> Subject: Re: Table field
>>>
>>>
>>> What Mike said.  It's somewhat confusing since there is a
>>> "columndelimiter"
>>> property which is set to tab by default but it seems to only
>>> be used in
>>> conjunction with the split command.
>>>
>>> On Sat, Jul 11, 2015 at 12:57
>>> PM Mike Bonner <bonnmike at gmail.com> wrote:
>>>
>>>> Its tab and cr delimited data,
>>> so set the itemdelimiter to tab and get item
>>>> 2 o fline 3 of field "xxx"
>>>>
>>>>
>>> On Sat, Jul 11, 2015 at 1:51 PM, Richmond <richmondmathewson at gmail.com>
>>> wrote:
>>>>> I have a table field containing some data I copy pasted from a
>>> spreadsheet
>>>>> [being unable to find a reliable way to import data
>>> directly from a
>>>>> spreadsheet]
>>>>>
>>>>> that runs across 3 columns.
>>>>>
>>>> When I tried this:
>>>>> put column 2 of line 3 of fld "XXX"
>>>>>
>>>>> I
>>> had no joy.
>>>>> I would be grateful if someone could tell me how to
>>> extract data from
>>>>> individual cells in a table field.
>>>>>
>>>>> Richmond.
>>>>
>>>>> _______________________________________________
>>>>> 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
>>> _______________________________________________
>>>> 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
>>> _______________________________________________
>>> 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
>>>
>>>
>>> _______________________________________________
>>> 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
>>>
>>
>> _______________________________________________
>> 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
>
> _______________________________________________
> 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