home *** CD-ROM | disk | FTP | other *** search
- * function name : SUBSETS() && for Clipper only
- *
- * Author : Dirk Lesko
- *
- * Syntax : mem_var = SUBSETS(<expC>,<expC>)
- *
- * Parameters : <expC> character string or memory variable
- * : <expC> character string or memory variable
- *
- * Purpose : to find out what characters in the first parameter
- * : exist in the second parameter without regard to order.
- *
- * Notes : Does not convert parameters to uppercase, and does not
- * : trim() parameters either. You should send TRIM()
- * : parameters so as not to include trailing blanks in the
- * : check.
- *
- * Example : m_var1 = " "
- * : m_var2 = "AaBbCcEeHhJjKkXxZz"
- * : @ 10,0 say "Enter three letters:" get m_var1
- * : read
- * :
- * : m_var3 = SUBSETS(m_var1,m_var2)
- * :
- * : ? "The characters &m_var3 were in the second parameter"
-
- func subsets
- para dl_var,dl_str
- priv dl_ret,dl_cnt,dl_len
-
- dl_ret = ""
- dl_cnt = 1
- dl_len = len(dl_var)
-
- do whil dl_cnt <= dl_len
-
- dl_ret = dl_ret+if(subs(dl_var,dl_cnt,1) $"&dl_str" .AND.;
- .NOT. subs(dl_var,dl_cnt,1) $"&dl_ret",;
- subs(dl_var,dl_cnt,1),"")
-
- dl_cnt = dl_cnt+1
-
- endd
-
- retu(dl_ret)