home *** CD-ROM | disk | FTP | other *** search
/ HaCKeRz KrOnIcKLeZ 3 / HaCKeRz_KrOnIcKLeZ.iso / scriptz / gutils.tcl < prev    next >
Text File  |  1996-04-23  |  1KB  |  61 lines

  1. #  gutils.tcl by Gord-@saFyre 1 March 1996
  2. #  some useful function processes:
  3. #
  4. #  isinteger <arg>  returns 1 if <arg> is
  5. #       an integer, 0 if it is not
  6. #
  7. #  isalpha <arg>  returns 1 if <arg> is
  8. #       purely alphabetical, 0 if it is not
  9. #
  10. #  isalphanum <arg>  returns 1 if <arg> is
  11. #       alphanumeric, 0 if it is not
  12. #
  13. #  firstpunct <arg> returns the index of the
  14. #       first clause/sentence-terminating
  15. #       punctuation mark in string <arg>
  16.  
  17.  
  18. set punctuation {"." ";" "!" "?" " - "}
  19.  
  20. proc isinteger {arg} {
  21.   if {[string length $arg] == 0} {return 0}
  22.   set ctr 0
  23.   while {$ctr < [string length $arg]} {
  24.     if {![string match \[0-9\] [string index $arg $ctr]]} {return 0}
  25.     set ctr [expr $ctr + 1]
  26.   }
  27.   return 1
  28. }
  29.  
  30. proc isalpha {arg} {
  31.   if {[string length $arg] == 0} {return 0}
  32.   set ctr 0
  33.   while {$ctr < [string length $arg]} {
  34.     if {![string match \[a-zA-Z\] [string index $arg $ctr]]} {return 0}
  35.     set ctr [expr $ctr + 1]
  36.   }
  37.   return 1
  38. }
  39.  
  40. proc isalphanum {arg} {
  41.   if {[string length $arg] == 0} {return 0}
  42.   set ctr 0
  43.   while {$ctr < [string length $arg]} {
  44.     if {![string match \[0-9a-zA-Z\] [string index $arg $ctr]]} {return 0}
  45.     set ctr [expr $ctr + 1]
  46.   }
  47.   return 1
  48. }
  49.  
  50. proc firstpunct {arg} {
  51.   global punctuation
  52.   set response -1
  53.   foreach mark $punctuation {
  54.     set index [string first $mark $arg]
  55.     if {($index != -1) && (($index < $response) || ($response == -1))} {
  56.       set response $index
  57.     }
  58.   }
  59.   return $response
  60. }
  61.