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