home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / sigmv022.ark / CFIO.LIB < prev    next >
Encoding:
Text File  |  1984-04-29  |  1.7 KB  |  71 lines

  1. (**************************************************
  2. *
  3. *    CONNECT FILES PROGRAM
  4. *
  5. *    Ray Penley put this togeather to make it 
  6. *  easier to open files. Add this to your library.
  7. *
  8. * Written by RAY PENLEY
  9. *  Donated to the Pascal/Z Users Group, Sept 1980
  10. *
  11. *************************************************)
  12.     
  13. TYPE
  14.   BYTE: 0..255;
  15.  
  16. FUNCTION length(x: str255): INTEGER; EXTERNAL;
  17. PROCEDURE setlength(VAR x: str0; y: INTEGER); EXTERNAL;
  18. FUNCTION index(x,y: str255): INTEGER; EXTERNAL;
  19.  
  20. FUNCTION ConnectFiles: boolean;
  21. CONST
  22.   dflt_extension = '.CCD';
  23.   fid_len    = 14;    { Max length CP/M file names }
  24. TYPE
  25.   FID    = string fid_len;
  26. VAR
  27.   File_ID,
  28.   New_ID  : FID;
  29.   ix,jx    : BYTE;
  30.  
  31.     PROCEDURE PAD(VAR ID: fid; required: BYTE);
  32.     CONST
  33.       space = ' ';
  34.     BEGIN
  35.       WHILE (length(ID)<required) DO append(ID,space);
  36.     END;
  37.  
  38. BEGIN{-GETID-}
  39.   ConnectFiles := true;
  40.   setlength(File_ID,0);
  41.   WRITELN;
  42.   WRITE('Enter <Drive:><File name>  ');
  43.   READLN(File_ID);
  44.   IF (length(File_ID)>fid_len) THEN
  45.     setlength(File_ID,fid_len)
  46.   Else
  47.     PAD(File_ID, fid_len);
  48.   RESET(File_ID, TextFile);
  49.   IF EOF(TextFile) THEN{ ABORT }
  50.     BEGIN
  51.       error(3);
  52.       ConnectFiles := false;
  53.     END
  54.   ELSE
  55.     BEGIN
  56.     ix := index(File_ID,'.'); { search for an extension }
  57.     jx := index(File_ID,' '); { search for the first space }
  58.     IF (ix=0) THEN{ no extension was specified }
  59.       setlength(File_ID,jx-1)
  60.     Else
  61.       setlength(File_ID,ix-1);
  62.     setlength(New_ID,0);
  63.     append(New_ID, File_ID);
  64.     append(New_ID, dflt_extension);
  65.     PAD(New_ID, fid_len);
  66.     REWRITE(New_ID, Work_File);
  67.     END;
  68. END; {of ConnectFiles}
  69.  
  70. {++++++++++++++++++++++++++++++++++++++++++++++++}
  71.