home *** CD-ROM | disk | FTP | other *** search
- program ziptest;
-
- (* *)
- (* Released to the public domain for any use whatsoever *)
- (* By : William L. Mabee, CRNA *)
- (* *)
-
- type
- str2 = string[2];
- str12 = string[12];
-
- procedure validate_state(state : str2; var good : boolean;
- var ziprange : str12; var statenum : byte);
- VAR
- STATESET : SET OF BYTE;
- BEGIN
- IF STATE = 'AL' THEN STATENUM := 1;
- IF STATE = 'AK' THEN STATENUM := 2; (* Alaska *)
- IF STATE = 'AZ' THEN STATENUM := 3;
- IF STATE = 'AR' THEN STATENUM := 4;
- IF STATE = 'CA' THEN STATENUM := 5;
- IF STATE = 'CO' THEN STATENUM := 6;
- IF STATE = 'CT' THEN STATENUM := 7;
- IF STATE = 'DE' THEN STATENUM := 8;
- IF STATE = 'DC' THEN STATENUM := 9;
- IF STATE = 'FL' THEN STATENUM := 10;
- IF STATE = 'GA' THEN STATENUM := 11;
- IF STATE = 'HI' THEN STATENUM := 12;
- IF STATE = 'ID' THEN STATENUM := 13;
- IF STATE = 'IL' THEN STATENUM := 14;
- IF STATE = 'IN' THEN STATENUM := 15;
- IF STATE = 'IA' THEN STATENUM := 16;
- IF STATE = 'KS' THEN STATENUM := 17;
- IF STATE = 'KY' THEN STATENUM := 18;
- IF STATE = 'LA' THEN STATENUM := 19;
- IF STATE = 'ME' THEN STATENUM := 20; (* Maine *)
- IF STATE = 'MD' THEN STATENUM := 21;
- IF STATE = 'MA' THEN STATENUM := 22;
- IF STATE = 'MI' THEN STATENUM := 23; (* Mich *)
- IF STATE = 'MN' THEN STATENUM := 24;
- IF STATE = 'MS' THEN STATENUM := 25;
- IF STATE = 'MO' THEN STATENUM := 26;
- IF STATE = 'MT' THEN STATENUM := 27;
- IF STATE = 'NE' THEN STATENUM := 28;
- IF STATE = 'NV' THEN STATENUM := 29;
- IF STATE = 'NH' THEN STATENUM := 30;
- IF STATE = 'NJ' THEN STATENUM := 31;
- IF STATE = 'NM' THEN STATENUM := 32;
- IF STATE = 'NY' THEN STATENUM := 33;
- IF STATE = 'NC' THEN STATENUM := 34;
- IF STATE = 'ND' THEN STATENUM := 35;
- IF STATE = 'OH' THEN STATENUM := 36;
- IF STATE = 'OK' THEN STATENUM := 37;
- IF STATE = 'OR' THEN STATENUM := 38;
- IF STATE = 'PA' THEN STATENUM := 39;
- IF STATE = 'RI' THEN STATENUM := 40;
- IF STATE = 'SC' THEN STATENUM := 41;
- IF STATE = 'SD' THEN STATENUM := 42;
- IF STATE = 'TN' THEN STATENUM := 43;
- IF STATE = 'TX' THEN STATENUM := 44;
- IF STATE = 'UT' THEN STATENUM := 45;
- IF STATE = 'VT' THEN STATENUM := 46;
- IF STATE = 'VA' THEN STATENUM := 47;
- IF STATE = 'WA' THEN STATENUM := 48;
- IF STATE = 'WV' THEN STATENUM := 49;
- IF STATE = 'WI' THEN STATENUM := 50;
- IF STATE = 'WY' THEN STATENUM := 51;
- IF STATENUM IN [1..51] THEN GOOD := TRUE ELSE GOOD := FALSE;
- CASE STATENUM OF
- 1 : ZIPRANGE := '35000..36999';
- 2 : ZIPRANGE := '99500..99999';
- 3 : ZIPRANGE := '85000..86599';
- 4 : ZIPRANGE := '71600..72999';
- 5 : ZIPRANGE := '90000..96699';
- 6 : ZIPRANGE := '80000..81699';
- 7 : ZIPRANGE := '06000..06999';
- 8 : ZIPRANGE := '19700..19999';
- 9 : ZIPRANGE := '20000..20599';
- 10 : ZIPRANGE := '32000..34299';
- 11 : ZIPRANGE := '30000..31999';
- 12 : ZIPRANGE := '96700..96899';
- 13 : ZIPRANGE := '83200..83899';
- 14 : ZIPRANGE := '60000..62999';
- 15 : ZIPRANGE := '46000..47999';
- 16 : ZIPRANGE := '50000..52899';
- 17 : ZIPRANGE := '66000..67999';
- 18 : ZIPRANGE := '40000..42799';
- 19 : ZIPRANGE := '70000..71499';
- 20 : ZIPRANGE := '03900..04999';
- 21 : ZIPRANGE := '20600..21999';
- 22 : ZIPRANGE := '01000..02799';
- 23 : ZIPRANGE := '48000..49999';
- 24 : ZIPRANGE := '55000..56799';
- 25 : ZIPRANGE := '38600..39799';
- 26 : ZIPRANGE := '63000..65899';
- 27 : ZIPRANGE := '59000..59999';
- 28 : ZIPRANGE := '68000..69399';
- 29 : ZIPRANGE := '89000..89899';
- 30 : ZIPRANGE := '03000..03899';
- 31 : ZIPRANGE := '07000..08999';
- 32 : ZIPRANGE := '87000..88499';
- 33 : ZIPRANGE := '09000..14999';
- 34 : ZIPRANGE := '27000..28999';
- 35 : ZIPRANGE := '58000..58899';
- 36 : ZIPRANGE := '43000..45899';
- 37 : ZIPRANGE := '73000..74999';
- 38 : ZIPRANGE := '97000..97999';
- 39 : ZIPRANGE := '15000..19699';
- 40 : ZIPRANGE := '02800..02999';
- 41 : ZIPRANGE := '29000..29999';
- 42 : ZIPRANGE := '57000..57799';
- 43 : ZIPRANGE := '37000..38599';
- 44 : ZIPRANGE := '75000..79999';
- 45 : ZIPRANGE := '84000..84799';
- 46 : ZIPRANGE := '05000..05999';
- 47 : ZIPRANGE := '22000..24699';
- 48 : ZIPRANGE := '98000..99499';
- 49 : ZIPRANGE := '24700..26899';
- 50 : ZIPRANGE := '53000..54999';
- 51 : ZIPRANGE := '82000..83199';
- END; (* CASE STATENUM *)
- END;
-
- (* Demonstration of use *)
-
- var (* globals *)
- zip_range : str12;
- OK : boolean;
- state_num : byte;
- state_name : str2;
-
- (* In actual application you would prompt user for state_name *)
-
- procedure initialize;
- begin
- zip_range := '';
- OK := false;
- state_num := 0;
- state_name := '';
- end;
-
- begin (* main demo *)
- clrscr;
- initialize;
- State_name := 'MI';
- validate_state(state_name,OK,zip_range,state_num);
- gotoxy(1,10);
- writeln(state_name);
- writeln(OK);
- writeln('Zip Range For ',state_name,' Is ',zip_range);
- writeln('State Number = ',state_num);
- end.