home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / utility / misc / areacode.lzh / AreaCode.rexx next >
Encoding:
OS/2 REXX Batch file  |  1992-09-25  |  1.4 KB  |  81 lines

  1. /* Look up an area code. 
  2.  * Author:  Daniel J. Barrett, barrett@cs.umass.edu.
  3.  * 100% public domain.
  4.  * If you improve this program, please let me know.
  5.  */
  6.  
  7. LIBFILE    = "usr:lib/areacode.txt"
  8.  
  9. PARSE ARG target
  10. IF target = "" THEN DO
  11.     SAY 'Usage: areacode <area code or state abbreviation>'
  12.     EXIT
  13. END
  14. ELSE DO
  15.     target = Upper(target)
  16. END
  17.  
  18. IF ~open('infile', LIBFILE, 'r') THEN DO
  19.     SAY "Cannot find library file" LIBFILE
  20.     EXIT
  21. END
  22.  
  23. IF IsNumeric(target) THEN DO
  24.     state = StateOf('infile', target)
  25.  
  26.     IF state = "" THEN DO
  27.         SAY target "is not a United States area code."
  28.     END
  29.     ELSE DO
  30.         CALL ShowOne(target, state)
  31.     END
  32. END
  33. ELSE DO
  34.     CALL ShowCodesOf('infile', target)
  35. END
  36.  
  37. CALL Close('infile')
  38. EXIT
  39.  
  40. /*************************************************************************
  41. * Functions
  42. *************************************************************************/
  43.  
  44. StateOf: PROCEDURE
  45.     PARSE ARG database, number
  46.     DO WHILE ~EOF(database)
  47.         line = readln(database)
  48.         PARSE VAR line areacode '    ' state '    ' data
  49.  
  50.         IF areacode = number THEN DO
  51.             RETURN data
  52.         END
  53.     END
  54.     RETURN ""
  55.  
  56. ShowCodesOf: PROCEDURE
  57.     PARSE ARG database, target
  58.  
  59.     DO WHILE ~EOF(database)
  60.         line = readln(database)
  61.         PARSE VAR line areacode '    ' state '    ' data
  62.  
  63.         IF state = target THEN DO
  64.             CALL ShowOne(areacode, data)
  65.         END
  66.     END
  67.     RETURN answer
  68.  
  69.  
  70. ShowOne: PROCEDURE
  71.     PARSE ARG code, data
  72.     SAY code || ':' data
  73.     RETURN
  74.  
  75.  
  76. IsNumeric: PROCEDURE    /* stub */
  77.     PARSE ARG str
  78.     RETURN DataType(str, 'W')
  79.  
  80.  
  81.