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

  1. * Function name : SUBSET()           && for Clipper only
  2. *
  3. * Author     : Dirk Lesko
  4. *
  5. * Syntax     : if subset(<expC>,<expC>)
  6. *
  7. * Parameters    : <expC> character string or memory variable
  8. *        : <expC> character string or memory variable
  9. *
  10. * Purpose    : To find out if all characters in the first string
  11. *        : are present in the second string in any order.
  12. *
  13. * Returns    : logical .T. if all characters in first string
  14. *        : are found in second string in any order. Otherwise
  15. *        : returns .F. 
  16. *
  17. * Notes        : Does not convert parameters to uppercase, and does
  18. *        : not trim() parameters. Use trim if you do not want
  19. *        : trailing blanks included in the check.
  20. *
  21. * Example    : m_var1 = "   "             
  22. *        : m_var2 = "AaBbCcEeHhJjKkXxZz"
  23. *        : @ 10,0 say "Enter three letters:" get m_var1
  24. *        : read
  25. *        :
  26. *        : if .not. subset(m_var1,m_var2)
  27. *        :     @ 12,0 say "Invalid letter entered...."
  28. *        : else
  29. *        :     @ 12,0 say "All letters are OK!....."
  30. *        : endif
  31.  
  32. func subset
  33. para dl_var,dl_str
  34. priv dl_cnt,dl_len
  35.  
  36. dl_cnt = 1
  37. dl_len = len(dl_var)
  38.  
  39. do whil dl_cnt <= dl_len
  40.  
  41.     if subs("&dl_var",dl_cnt,1) $"&dl_str"
  42.     retu(.T.)
  43.     endi
  44.  
  45.     dl_cnt = dl_cnt+1
  46.  
  47. endd
  48.  
  49. retu(.F.)
  50.