This shows you the differences between two versions of the page.
— |
copattern [2007/03/02 02:32] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | # $EPIC: copattern.txt,v 1.4 2007/03/02 02:32:04 jnelson Exp $ | ||
+ | ======Synopsis:====== | ||
+ | $[[copattern]](<pattern> <var1> <var2>) | ||
+ | |||
+ | ======Description:====== | ||
+ | The <pattern> argument is a [[what is a word|dword]], which is different | ||
+ | than most functions. | ||
+ | |||
+ | This function is the complementary operation of [[cofilter]] | ||
+ | |||
+ | This function is closely related to [[pattern]], which returns all of the | ||
+ | words in a word list that do not match a wildcard pattern. | ||
+ | |||
+ | All of the co* functions take a wildcard pattern, and two variable names. | ||
+ | The variables should contain word lists and each variable should have the | ||
+ | same number of words. Each of the words in the first list are matched | ||
+ | against the wildcard pattern, and depending on result, the corresponding | ||
+ | word in the second list is included or excluded in the return value. | ||
+ | |||
+ | The [[copattern]] function returns all those words in $<var2> that correspond | ||
+ | in position to those words in $<var1> that match the <pattern>. | ||
+ | |||
+ | Parsing ends whenever the shorter of the two word lists runs out of words. | ||
+ | Therefore, the two word lists should have the same number of words. | ||
+ | |||
+ | The wildcard <pattern> may be optionally surrounded by double quotes, | ||
+ | if the pattern contains spaces. The double quotes are not considered part | ||
+ | of the wildcard pattern. | ||
+ | |||
+ | ======Practical:====== | ||
+ | When you have two variables, one that contains a list of control data, | ||
+ | and another that contains a list of secondary data, and you wish to | ||
+ | retrieve the secondary data, but you need to do it based on a query of | ||
+ | the control data, you might use this function. One possible use might | ||
+ | be if one variable held your friends list, and another held their access | ||
+ | levels. | ||
+ | |||
+ | ======Returns:====== | ||
+ | The words from $<var2> that correspond to all of the words in $<var1> | ||
+ | that are not matched by <pattern>. | ||
+ | |||
+ | ======Examples:====== | ||
+ | <file> | ||
+ | @ friends = [bob@foo.com tom@bar.com] | ||
+ | @ levels = [20 10] | ||
+ | $copattern(*@foo.com friends levels) returns "20" | ||
+ | $copattern(*@bar.com friends levels) returns "10" | ||
+ | $copattern(*@*.com friends levels) returns "10 20" | ||
+ | $copattern(*@*.net friends levels) returns "" (empty string) | ||
+ | </file> | ||