[Back to DOS SWAG index] [Back to Main SWAG index] [Original]
{
QCD (C) 1995 Scott Tunstall. All rights reserved.
-------------------------------------------------
Using a text file that you have created (called DIRS.TXT) this
routine can quickly CD into any directory without you having
to specify the full path.
(Mind and not overload the table with entries please... will
slow down the old CPU)
For example, in file DIRS.TXT
You could have:
DUNE2
C:\GAMES\DUNE2
...
...
...
...
So whenever this was typed at the command line
CDQ DUNE2
The directory becomes C:\GAMES\DUNE2
You can have as many entries as you like.
}
uses crt, basics;
procedure usage;
begin
     writeln;
     writeln('Usage :');
     writeln;
     writeln('QCD <Entry>');
     writeln;
     writeln('Where <Entry> is a key related to a specific path');
     writeln('contained on the disk (need not be the current disk)');
     writeln;
     writeln('Ask Scott for details if still stuck :)');
     writeln('E-Mail address: INSC3SAT@RIVER.TAY.AC.UK');
     writeln;
     halt;
end;
Function StrCmp(Str1, Str2 : String) : Boolean;
begin
  Str1:=upper(Str1);
  Str2:=upper(Str2);
  if (Length(Str1) = Length(Str2)) and (Pos(Str1, Str2) <> 0) then
    StrCmp := True
  else
    StrCmp := False;
end;
procedure change_dir(entry : string);
var f: text;
    currententry: string[20];
    associateddir: string[80];
begin
     assign(f, '\DIRS.TXT');
     reset(f);
     while not eof(f) do
     begin
          readln(f,currententry);
          readln(f,associateddir);
          if (strcmp(entry, currententry) = True) then
             begin
             close(f);
             {$i-}
             chdir(associateddir);
             if ioresult <> 0 then
                begin
                writeln('Directory ',upper(associateddir),' does not exist !!');
                halt(1);
                end;
             halt(0);
          end;
     end;
     writeln;
     writeln('No match for ',upper(entry),'!. ');
     close(f);
     halt(1);
end;
begin
     writeln;
     writeln;
     writeln('Quick CD (C) 1995 Scott Tunstall. All rights reserved.');
     case paramcount of
     0 : usage;
     1 : change_dir(paramstr(1));
     else
         begin
         writeln('An error occurred: Too many parameters !!');
         usage;
         end;
     end;
end.
[Back to DOS SWAG index] [Back to Main SWAG index] [Original]