home *** CD-ROM | disk | FTP | other *** search
- setkey:
- proc;
- /* read key file */
- %include 'attrib.dcl';
- %include 'key.dcl';
- dcl
- key file,
- key_v char(max_chr),
- rec_no fixed;
-
- setfmt:
- format(skip,column(12),a,skip,a);
-
- on error(7)
- begin;
- /* free space exhausted */
- put edit('Not Enough Memory for Keys','')
- (r(setfmt));
- stop;
- end;
-
- on undefinedfile(key)
- begin;
- put edit('(No Key File)','')
- (r(setfmt));
- go to end_set;
- end;
-
- on endfile(key)
- go to end_read;
-
- key_hdr = null();
- open file(key) stream;
- do rec_no = 0 by 1;
- get file(key) edit(key_v) (a);
- allocate key_elt set(key_adr);
- key_val = key_v;
- key_loc = rec_no;
- key_lst = key_hdr;
- key_hdr = key_adr;
- end;
- end_read:
- close file(key);
- put skip list('List of Keys:');
- do key_adr = key_hdr repeat(key_lst)
- while(key_adr ^= null());
- put edit(key_val,key_loc)
- (column(4),a(max_chr),f(6));
- end;
- end_set:
- end setkey;
-