Filtering Columnar Data
Josh Mellicker
josh at dvcreators.net
Mon Jul 16 12:46:12 EDT 2007
woops, already found an error, this line:
put offset(pHeader, line 1 of tData) into tColNum
should be
put itemOffset(pHeader, line 1 of tData) into tColNum
(and it doesn't really need the "line 1" but I like it there just for
clarity)
On Jul 16, 2007, at 9:43 AM, Josh Mellicker wrote:
> filter tmpData with "*" & tab & myNumber & tab & "*"
> will work, except it will return lines that have a "9" in ANY
> column...
>
>
> The best way I have found to do this is a generic handler that will
> retrieve lines from any 2-dimensional field of data based on the
> header value and search data.
>
> That is, if you want to know who likes pizza, ask
>
> put FindSomeLines(the long id of fld "favorites", "favFood",
> "pizza") into tPizzaLovers
>
>
> here's the field:
>
> name favColor favFood
> Greg blue pizza
> Ken green burgers
> Rich chrome pizza
>
>
> and the handler:
>
> function FindSomeLines pFldName, pHeader, pSearchData
> put fld pFldName into tData
> put offset(pHeader, line 1 of tData) into tColNum
> set the itemdel to tab -- (if your field is tab-delimited)
>
> repeat for each line tLine in tData
> if item tColNum of tLine = pSearchData
> put tLine & cr after tFoundLines
> end if
> end repeat
>
> delete the last char of tFoundLines
>
> return tFoundLines
> end FindSomeLines
>
>
> This is not tested, but should be close I hope!
>
>
>
>
>
> On Jul 16, 2007, at 9:18 AM, Chris Sheffield wrote:
>
>> Gregory,
>>
>> Try this and see if it works.
>>
>> filter tmpData with "*" & tab & myNumber & tab & "*"
>>
>> There shouldn't be any need to include the preceding or trailing
>> tabs, except for the ones directly surrounding the number.
>>
>> Chris
>>
>>
>> On Jul 16, 2007, at 9:58 AM, Gregory Lypny wrote:
>>
>>> Hello Everyone,
>>>
>>> I'm struggling with the filter command. I have tab-delimited
>>> data in a field, where each row has at least 56 columns. I want
>>> to filter the data based on a chosen number in that fourth
>>> column, for example, to return all lines that have a 9 there.
>>> The fourth column only contains a number from 1 to 10. The
>>> following handler works most of the time. I put three wild card
>>> expressions, lone asterisks separated by tabs, to make sure
>>> nothing is being picked up in the first three columns. The tab
>>> and asterisk (and it could be just an *) following myNumber says
>>> that it doesn't matter what is in the columns after the fourth.
>>>
>>> put fld "Data" of this card into tmpData
>>> filter tmpData with "*" & tab & "*" & tab & "*" & tab & myNumber
>>> & tab & "*"
>>>
>>> The trouble is, the first three wild card expressions are
>>> interpreted by Revolution to include tab characters, which means
>>> that I'm not necessarily filtering the fourth column! If a 9
>>> appears by itself in column 58, then the filter command will pick
>>> it up. Sigh.
>>>
>>> I also tried the following, but I don't think I have the regular
>>> expression syntax right.
>>>
>>> filter it with "[A-Z0-9]" & tab & "[0-9]" & tab & "[A-Z]" &
>>> tab & myNumber & tab & "*"
>>>
>>> I know that my first column always contains five words, two of
>>> which are numbers. I wasn't sure how to represent the four
>>> spaces between the words. The second column is always a seven-
>>> digit number. The third contains first and last names, which
>>> will contain at least two words. This turns up empty.
>>>
>>> Any advice would be most appreciated. If I can't get the RegEx
>>> working for me, I know I can resort to a repeat loop and pull out
>>> all lines with myNumber in the fourth item.
>>>
>>> Regards,
>>>
>>> Gregory
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> 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
>>
>> ------------------------------------------
>> Chris Sheffield
>> Read Naturally
>> The Fluency Company
>> http://www.readnaturally.com
>> ------------------------------------------
>>
>>
>> _______________________________________________
>> 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
>
> _______________________________________________
> 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