home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 03 / tricks / which.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1991-02-06  |  1.9 KB  |  67 lines

  1. (* ------------------------------------------------------ *)
  2. (*                    WHICH.PAS                           *)
  3. (*             Aufruf : WHICH <Dateiname>                 *)
  4. (*          (c) 1991 Achim Stindt & TOOLBOX               *)
  5. (* ------------------------------------------------------ *)
  6. PROGRAM Which;
  7.  
  8. USES
  9.   Crt, Dos;
  10.  
  11. VAR
  12.   filename     : PathStr;
  13.   extension    : PathStr;
  14.   search       : PathStr;
  15.   path,
  16.   expandedpath : STRING;
  17.   i, oldi      : INTEGER;
  18. BEGIN
  19.   DirectVideo := FALSE;
  20.   filename    := ParamStr(1);
  21.   extension   := '';
  22.   FOR i := 1 TO Length(filename) DO
  23.     filename[i] := UpCase(filename[i]);
  24.   path := GetEnv('PATH');  { nicht 'BGIPATH', wie im Heft S.40! }
  25.  
  26.   REPEAT
  27.     oldi := Ord(path[0]);
  28.     i := Pos(';', path);
  29.     IF i > 0 THEN path[0] := Chr(i - 1);
  30.     IF path <> '' THEN BEGIN
  31.       expandedpath := FExpand(path);
  32.       IF Pos('.', filename) > 0 THEN
  33.         search := FSearch(filename, expandedpath)
  34.       ELSE BEGIN
  35.         search := FSearch(filename + '.COM', expandedpath);
  36.         IF search = '' THEN
  37.           search := FSearch(filename + '.EXE', expandedpath);
  38.         IF search = '' THEN
  39.           search := FSearch(filename + '.BAT', expandedpath);
  40.         extension := '.COM/EXE/BAT';
  41.       END;
  42.     END;
  43.     IF i > 0 THEN BEGIN
  44.       path[0] := Chr(oldi);
  45.       path    := Copy(path, i + 1, oldi - i);
  46.     END ELSE
  47.       path := '';
  48.     IF search <> '' THEN path := '';
  49.   UNTIL path = '';
  50.  
  51.   IF search = '' THEN BEGIN
  52.     TextColor(LightMagenta);
  53.     Write(filename + extension);
  54.     Write(' nicht gefunden in ');
  55.     Write(GetEnv('PATH'));    { und nicht 'BGIPATH', wie im Heft S. 40! }
  56.   END ELSE BEGIN
  57.     TextColor(LightCyan);
  58.     Write('gefunden als ');
  59.     Write(search);
  60.   END;
  61.   TextColor(LightGray);
  62.   WriteLn(' ');
  63. END.
  64. (* ------------------------------------------------------ *)
  65. (*                   Ende von WHICH.PAS                   *)
  66.  
  67.