home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / ZIPTEST.ZIP / ZIPTEST.PAS
Encoding:
Pascal/Delphi Source File  |  1989-03-20  |  5.1 KB  |  153 lines

  1. program ziptest;
  2.  
  3. (*                                                      *)
  4. (* Released to the public domain for any use whatsoever *)
  5. (* By : William L. Mabee, CRNA                          *)
  6. (*                                                      *)
  7.  
  8. type
  9.   str2   = string[2];
  10.   str12  = string[12];
  11.  
  12. procedure validate_state(state : str2; var good : boolean;
  13.                    var ziprange : str12; var statenum : byte);
  14. VAR
  15.   STATESET : SET OF BYTE;
  16. BEGIN
  17.   IF STATE = 'AL' THEN STATENUM := 1;
  18.   IF STATE = 'AK' THEN STATENUM := 2;   (* Alaska *)
  19.   IF STATE = 'AZ' THEN STATENUM := 3;
  20.   IF STATE = 'AR' THEN STATENUM := 4;
  21.   IF STATE = 'CA' THEN STATENUM := 5;
  22.   IF STATE = 'CO' THEN STATENUM := 6;
  23.   IF STATE = 'CT' THEN STATENUM := 7;
  24.   IF STATE = 'DE' THEN STATENUM := 8;
  25.   IF STATE = 'DC' THEN STATENUM := 9;
  26.   IF STATE = 'FL' THEN STATENUM := 10;
  27.   IF STATE = 'GA' THEN STATENUM := 11;
  28.   IF STATE = 'HI' THEN STATENUM := 12;
  29.   IF STATE = 'ID' THEN STATENUM := 13;
  30.   IF STATE = 'IL' THEN STATENUM := 14;
  31.   IF STATE = 'IN' THEN STATENUM := 15;
  32.   IF STATE = 'IA' THEN STATENUM := 16;
  33.   IF STATE = 'KS' THEN STATENUM := 17;
  34.   IF STATE = 'KY' THEN STATENUM := 18;
  35.   IF STATE = 'LA' THEN STATENUM := 19;
  36.   IF STATE = 'ME' THEN STATENUM := 20;              (* Maine *)
  37.   IF STATE = 'MD' THEN STATENUM := 21;
  38.   IF STATE = 'MA' THEN STATENUM := 22;
  39.   IF STATE = 'MI' THEN STATENUM := 23;              (* Mich  *)
  40.   IF STATE = 'MN' THEN STATENUM := 24;
  41.   IF STATE = 'MS' THEN STATENUM := 25;
  42.   IF STATE = 'MO' THEN STATENUM := 26;
  43.   IF STATE = 'MT' THEN STATENUM := 27;
  44.   IF STATE = 'NE' THEN STATENUM := 28;
  45.   IF STATE = 'NV' THEN STATENUM := 29;
  46.   IF STATE = 'NH' THEN STATENUM := 30;
  47.   IF STATE = 'NJ' THEN STATENUM := 31;
  48.   IF STATE = 'NM' THEN STATENUM := 32;
  49.   IF STATE = 'NY' THEN STATENUM := 33;
  50.   IF STATE = 'NC' THEN STATENUM := 34;
  51.   IF STATE = 'ND' THEN STATENUM := 35;
  52.   IF STATE = 'OH' THEN STATENUM := 36;
  53.   IF STATE = 'OK' THEN STATENUM := 37;
  54.   IF STATE = 'OR' THEN STATENUM := 38;
  55.   IF STATE = 'PA' THEN STATENUM := 39;
  56.   IF STATE = 'RI' THEN STATENUM := 40;
  57.   IF STATE = 'SC' THEN STATENUM := 41;
  58.   IF STATE = 'SD' THEN STATENUM := 42;
  59.   IF STATE = 'TN' THEN STATENUM := 43;
  60.   IF STATE = 'TX' THEN STATENUM := 44;
  61.   IF STATE = 'UT' THEN STATENUM := 45;
  62.   IF STATE = 'VT' THEN STATENUM := 46;
  63.   IF STATE = 'VA' THEN STATENUM := 47;
  64.   IF STATE = 'WA' THEN STATENUM := 48;
  65.   IF STATE = 'WV' THEN STATENUM := 49;
  66.   IF STATE = 'WI' THEN STATENUM := 50;
  67.   IF STATE = 'WY' THEN STATENUM := 51;
  68.   IF STATENUM IN [1..51] THEN GOOD := TRUE ELSE GOOD := FALSE;
  69.   CASE STATENUM OF
  70.     1 : ZIPRANGE := '35000..36999';
  71.     2 : ZIPRANGE := '99500..99999';
  72.     3 : ZIPRANGE := '85000..86599';
  73.     4 : ZIPRANGE := '71600..72999';
  74.     5 : ZIPRANGE := '90000..96699';
  75.     6 : ZIPRANGE := '80000..81699';
  76.     7 : ZIPRANGE := '06000..06999';
  77.     8 : ZIPRANGE := '19700..19999';
  78.     9 : ZIPRANGE := '20000..20599';
  79.    10 : ZIPRANGE := '32000..34299';
  80.    11 : ZIPRANGE := '30000..31999';
  81.    12 : ZIPRANGE := '96700..96899';
  82.    13 : ZIPRANGE := '83200..83899';
  83.    14 : ZIPRANGE := '60000..62999';
  84.    15 : ZIPRANGE := '46000..47999';
  85.    16 : ZIPRANGE := '50000..52899';
  86.    17 : ZIPRANGE := '66000..67999';
  87.    18 : ZIPRANGE := '40000..42799';
  88.    19 : ZIPRANGE := '70000..71499';
  89.    20 : ZIPRANGE := '03900..04999';
  90.    21 : ZIPRANGE := '20600..21999';
  91.    22 : ZIPRANGE := '01000..02799';
  92.    23 : ZIPRANGE := '48000..49999';
  93.    24 : ZIPRANGE := '55000..56799';
  94.    25 : ZIPRANGE := '38600..39799';
  95.    26 : ZIPRANGE := '63000..65899';
  96.    27 : ZIPRANGE := '59000..59999';
  97.    28 : ZIPRANGE := '68000..69399';
  98.    29 : ZIPRANGE := '89000..89899';
  99.    30 : ZIPRANGE := '03000..03899';
  100.    31 : ZIPRANGE := '07000..08999';
  101.    32 : ZIPRANGE := '87000..88499';
  102.    33 : ZIPRANGE := '09000..14999';
  103.    34 : ZIPRANGE := '27000..28999';
  104.    35 : ZIPRANGE := '58000..58899';
  105.    36 : ZIPRANGE := '43000..45899';
  106.    37 : ZIPRANGE := '73000..74999';
  107.    38 : ZIPRANGE := '97000..97999';
  108.    39 : ZIPRANGE := '15000..19699';
  109.    40 : ZIPRANGE := '02800..02999';
  110.    41 : ZIPRANGE := '29000..29999';
  111.    42 : ZIPRANGE := '57000..57799';
  112.    43 : ZIPRANGE := '37000..38599';
  113.    44 : ZIPRANGE := '75000..79999';
  114.    45 : ZIPRANGE := '84000..84799';
  115.    46 : ZIPRANGE := '05000..05999';
  116.    47 : ZIPRANGE := '22000..24699';
  117.    48 : ZIPRANGE := '98000..99499';
  118.    49 : ZIPRANGE := '24700..26899';
  119.    50 : ZIPRANGE := '53000..54999';
  120.    51 : ZIPRANGE := '82000..83199';
  121.   END; (* CASE STATENUM *)
  122. END;
  123.  
  124. (* Demonstration of use *)
  125.  
  126. var (* globals *)
  127.   zip_range  : str12;
  128.   OK         : boolean;
  129.   state_num  : byte;
  130.   state_name : str2;
  131.  
  132. (* In actual application you would prompt user for state_name *)
  133.  
  134. procedure initialize;
  135. begin
  136.   zip_range  := '';
  137.   OK         := false;
  138.   state_num  := 0;
  139.   state_name := '';
  140. end;
  141.  
  142. begin (* main demo *)
  143.   clrscr;
  144.   initialize;
  145.   State_name := 'MI';
  146.   validate_state(state_name,OK,zip_range,state_num);
  147.   gotoxy(1,10);
  148.   writeln(state_name);
  149.   writeln(OK);
  150.   writeln('Zip Range For ',state_name,' Is ',zip_range);
  151.   writeln('State Number = ',state_num);
  152. end.
  153.