home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / SUBSET2.ZIP / SUBSETSF.PRG < prev   
Encoding:
Text File  |  1986-12-18  |  1.3 KB  |  46 lines

  1. * function name : SUBSETS()             && for Clipper only
  2. *
  3. * Author     : Dirk Lesko
  4. *
  5. * Syntax     : mem_var = SUBSETS(<expC>,<expC>)
  6. *
  7. * Parameters    : <expC> character string or memory variable
  8. *        : <expC> character string or memory variable
  9. *
  10. * Purpose    : to find out what characters in the first parameter
  11. *        : exist in the second parameter without regard to order.
  12. *
  13. * Notes        : Does not convert parameters to uppercase, and does not   
  14. *        : trim() parameters either. You should send TRIM()       
  15. *        : parameters so as not to include trailing blanks in the
  16. *        : check.
  17. *
  18. * Example    : m_var1 = "   "             
  19. *        : m_var2 = "AaBbCcEeHhJjKkXxZz"
  20. *        : @ 10,0 say "Enter three letters:" get m_var1
  21. *        : read
  22. *        :
  23. *        : m_var3 = SUBSETS(m_var1,m_var2)
  24. *        :
  25. *        : ? "The characters &m_var3 were in the second parameter"
  26.  
  27. func subsets
  28. para dl_var,dl_str
  29. priv dl_ret,dl_cnt,dl_len
  30.  
  31. dl_ret = ""
  32. dl_cnt = 1
  33. dl_len = len(dl_var)
  34.  
  35. do whil dl_cnt <= dl_len
  36.  
  37.     dl_ret = dl_ret+if(subs(dl_var,dl_cnt,1) $"&dl_str" .AND.;
  38.                     .NOT. subs(dl_var,dl_cnt,1) $"&dl_ret",;
  39.             subs(dl_var,dl_cnt,1),"")
  40.  
  41.     dl_cnt = dl_cnt+1
  42.  
  43. endd
  44.  
  45. retu(dl_ret)
  46.