|
QuiZipA Brief Introduction...R.O.I. Syngineering is pleased to introduce you to QuiZip, a Zip code utility program and data base specifically designed for MultiValue operating environments. QuiZip is more than a simple list of every Zip code and the primary city served. QuiZip provides a comprehensive database containing the primary and alternate cities and states, plus a subroutine that can be called by your host applications. QuiZip's Zip code data base (ZIPPER) contains virtually all localities in the United States and Canada, relating U.S. Zip codes and Canadian postal codes to cities, counties (or provinces). Subscribers to Vertex/MV receive a bonus; their copies of ZIPPER also contain matching GeoCodes (Vertex, Inc.'s proprietary tax jurisdiction designation). QuiZip consists of two easy-to-use programs and a database -
A Demonstration...The link below demonstrates QuiZip using selected Zip codes. The Zip codes available for review were chosen because they illustrate a variety of common but surprising situations.For example, most Zip codes in major cities have alternate acceptable names. Some Zip codes cover ten or more communities. Zip codes can span more that one county, or can cross state lines. One Zip code can serve the same city in more than one county. After reviewing that demonstration, please return to this page for more details on how QuiZip can be used with your application. A Little More Detail...QuiZip is our comprehensive Zip code locator utility. It consists of two rather simple programs. The first, QZIPINQ, is a demonstration and template program. It provides a convenient method of exercising the subroutine which does the actual work, and can be used as delivered for direct inquiry. It also serves as a working example of the modifications required within your own software to obtain the results you desire. The second program, QZIPFIND, accesses the ZIPPER file to locate all of the possible city/state combinations for a passed Zip code, and returns them to the calling program. The ZIPPER file is a simple, single-level, non-balanced B-Tree. Its item-ids are the three leading digits of all valid Zip codes or two leading characters of Canadian postal codes. Each record will contain the valid code ranges among those with starting with the two- or three-digit key. The manner in which ZIPPER is organized enables QZIPFIND to find the Zip code you are looking for quite rapidly, even if the entered code is embedded within a range (not listed specifically). Relatively speaking, there is quite a lot of information stored in the small number of records on this file. And It Works Like This...After installation you can execute QZIPINQ - you will be prompted for a Zip code. Entering a few Zip codes with which you are familiar will quickly raise both your understanding of, and confidence in, QuiZip. Implementation of QuiZip into your applications should be quite simple. Any program which requires the function just calls QZIPFIND as follows: CALL QZIPFIND(ZIPFILE, ZIPCODE, CITY.STATE) ZIPFILE is initialized to null before the first call of QZIPFIND and should not be modified thereafter. In environments which support such usage, this variable will contain the ZIPPER file address (opened during the first call), eliminating extra opens. ZIPCODE is the Zip code for which you wish to find the city and state. You may pass Zip+4 codes, but only the first 5 characters are meaningful in the USPS coding convention for city and state determination. CITY.STATE must be initialized to null or "M" (see below) before each call. Upon return it will contain matching city, state and county combinations. Many Zip codes match several valid postal city names; some serve cities on both sides of a state border. In such cases CITY.STATE will contain multiple values. EXAMPLE - ZIPFILE = '' ZIPCODE = '93512' CITY.STATE = '' (null,or 'M' for multi-valued results) CALL QZIPFIND(ZIPFILE, ZIPCODE, CITY.STATE) If called with CITY.STATE = '', upon return CITY.STATE = Attr. 1> "BENTON, CA (MONO) [050518298]" Attr. 2> "BISHOP, CA (INYO) [050270370]" Attr. 3> "MOUNT MONTGOMERY, NV (MINERAL) [290210294]" The above method results in returned values which may easily be displayed; the selected entry must them be parsed for use in your application. Note: The matching city names are presented alphabetically. The data within parentheses is the county name; the data within brackets is the Vertex Geocode, and is available only to licensees of Vertex/MV. If called with CITY.STATE = 'M', upon return CITY.STATE = Attr. 1> "BENTON[mv]CA[mv]MONO[mv]050518298" Attr. 2> "BISHOP[mv]CA[mv]INYO[mv]050270370" Attr. 3> "MOUNT MONTGOMERY[mv]NV[mv]MINERAL[mv]290210294" This method results in returned values which are more easily extracted for use in your application; however, if you wish to display the choices you must format each value. When executing QZIPINQ the result displayed are: 1) BENTON, CA (MONO) [050518298] 2) BISHOP, CA (INYO) [050270370] 3) MOUNT MONTGOMERY, NV (MINERAL) [290210294] If QZIPFIND is unable to locate a city/state for the passed Zip code, an error message is returned in CITY.STATE. Error messages may be identified by the asterisk in the first position of the returned value. The simplest approach is for your application to use the first valid city and state. Alternatively, it quite easy to display results as in QZIPINQ, and to enable the terminal operator to select from the list. In either case, your application can parse or extract the selected returned value for the specific data you need (city, state, county or GeoCode). If the first character of CITY.STATE is an asterisk, QZIPFIND has encountered an error condition. R.O.I Syngineering has embedded QuiZip in a variety of software products and customer programs. The general approach used is to construct the call parameters and call QZIPFIND. If an error is encountered (CITY.STATE[1,1] = '*'), display the error message and re-prompt. Otherwise, if there is only one returned value, populate the application target screen or file with the required data. If there is more than one valid returned value, display the choices in a window, or one at a time on a selection line (prefixed with "1 OF 3", etc.). Use the operator's response to determine which of the values should be used by the application. Our products are used on all "flavors" of MultiValue operating environments. Over the years we have encountered a few variations between these, and try to use "vanilla" coding techniques to prevent our programs from performing differently on various Pick implementations. Should you have any problems whatsoever, please call us for corrective action. We value such feedback very much. It is the basis for many of the improvements which we make in our products. Good luck with QuiZip, and welcome to R.O.I. Syngineering's rapidly expanding customer family. We truly value your feedback, and rely on your satisfaction for our continued growth. Our unofficial but heartfelt motto is "Your success is our success!" Purchase price of QuiZip is $1,495, and includes one year's quarterly updates to the Zipper file. Future updates will be provided on request for the cost of media, shipping and handling (approximately $60.00). If you have further questions or wish to order QuiZip, please refer to our home page (you can use the hypertext link below).
|