home *** CD-ROM | disk | FTP | other *** search
- /* Look up an area code.
- * Author: Daniel J. Barrett, barrett@cs.umass.edu.
- * 100% public domain.
- * If you improve this program, please let me know.
- */
-
- LIBFILE = "usr:lib/areacode.txt"
-
- PARSE ARG target
- IF target = "" THEN DO
- SAY 'Usage: areacode <area code or state abbreviation>'
- EXIT
- END
- ELSE DO
- target = Upper(target)
- END
-
- IF ~open('infile', LIBFILE, 'r') THEN DO
- SAY "Cannot find library file" LIBFILE
- EXIT
- END
-
- IF IsNumeric(target) THEN DO
- state = StateOf('infile', target)
-
- IF state = "" THEN DO
- SAY target "is not a United States area code."
- END
- ELSE DO
- CALL ShowOne(target, state)
- END
- END
- ELSE DO
- CALL ShowCodesOf('infile', target)
- END
-
- CALL Close('infile')
- EXIT
-
- /*************************************************************************
- * Functions
- *************************************************************************/
-
- StateOf: PROCEDURE
- PARSE ARG database, number
- DO WHILE ~EOF(database)
- line = readln(database)
- PARSE VAR line areacode ' ' state ' ' data
-
- IF areacode = number THEN DO
- RETURN data
- END
- END
- RETURN ""
-
- ShowCodesOf: PROCEDURE
- PARSE ARG database, target
-
- DO WHILE ~EOF(database)
- line = readln(database)
- PARSE VAR line areacode ' ' state ' ' data
-
- IF state = target THEN DO
- CALL ShowOne(areacode, data)
- END
- END
- RETURN answer
-
-
- ShowOne: PROCEDURE
- PARSE ARG code, data
- SAY code || ':' data
- RETURN
-
-
- IsNumeric: PROCEDURE /* stub */
- PARSE ARG str
- RETURN DataType(str, 'W')
-
-
-