home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol081 / getfiles.pas < prev    next >
Pascal/Delphi Source File  |  1984-04-29  |  1KB  |  53 lines

  1. { Read file names from command buffer }
  2.  
  3. { Assumes global file names 'infilename' and 'outfilename' }
  4.  
  5. procedure getfilenames (extin, extout : string255);
  6.  
  7. const
  8. buflen = 128;    { Length of command buffer }
  9.  
  10. var
  11. buffer : string buflen;
  12. ch : char;
  13. bp, len : byte;
  14.  
  15. { Read a name from the command buffer }
  16.  
  17. procedure getname (var name : string0; ext : string255);
  18.  
  19. { Read one character from the command buffer }
  20.  
  21. procedure getchar;
  22.  
  23. begin
  24. bp := bp + 1;
  25. if bp <= len then ch := buffer[bp] else ch := chr(0)
  26. end; { getchar }
  27.  
  28. begin { getname }
  29. setlength(name,0);
  30. repeat getchar until ch <> blank;
  31. if ch > chr(0) then
  32. begin
  33. repeat append(name,ch); getchar until (ch = blank) or (ch = chr(0));
  34. if index(name,'.') = 0 then append(name,ext)
  35. end
  36. end; { getname }
  37.  
  38. begin { getfilenames }
  39. setlength(buffer,0);
  40. while not eoln(0) do
  41. begin read(ch); append(buffer,ch) end; { while }
  42. len := length(buffer); bp := 0;
  43. getname(infilename,extin);
  44. getname(outfilename,extout);
  45. if (length(infilename) > 0) and (length(outfilename) = 0)
  46. then
  47. begin
  48. outfilename := infilename;
  49. setlength(outfilename,index(outfilename,'.') - 1);
  50. append(outfilename,extout)
  51. end
  52. end; { getfilenames }
  53.