home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* WHICH.PAS *)
- (* Aufruf : WHICH <Dateiname> *)
- (* (c) 1991 Achim Stindt & TOOLBOX *)
- (* ------------------------------------------------------ *)
- PROGRAM Which;
-
- USES
- Crt, Dos;
-
- VAR
- filename : PathStr;
- extension : PathStr;
- search : PathStr;
- path,
- expandedpath : STRING;
- i, oldi : INTEGER;
- BEGIN
- DirectVideo := FALSE;
- filename := ParamStr(1);
- extension := '';
- FOR i := 1 TO Length(filename) DO
- filename[i] := UpCase(filename[i]);
- path := GetEnv('PATH'); { nicht 'BGIPATH', wie im Heft S.40! }
-
- REPEAT
- oldi := Ord(path[0]);
- i := Pos(';', path);
- IF i > 0 THEN path[0] := Chr(i - 1);
- IF path <> '' THEN BEGIN
- expandedpath := FExpand(path);
- IF Pos('.', filename) > 0 THEN
- search := FSearch(filename, expandedpath)
- ELSE BEGIN
- search := FSearch(filename + '.COM', expandedpath);
- IF search = '' THEN
- search := FSearch(filename + '.EXE', expandedpath);
- IF search = '' THEN
- search := FSearch(filename + '.BAT', expandedpath);
- extension := '.COM/EXE/BAT';
- END;
- END;
- IF i > 0 THEN BEGIN
- path[0] := Chr(oldi);
- path := Copy(path, i + 1, oldi - i);
- END ELSE
- path := '';
- IF search <> '' THEN path := '';
- UNTIL path = '';
-
- IF search = '' THEN BEGIN
- TextColor(LightMagenta);
- Write(filename + extension);
- Write(' nicht gefunden in ');
- Write(GetEnv('PATH')); { und nicht 'BGIPATH', wie im Heft S. 40! }
- END ELSE BEGIN
- TextColor(LightCyan);
- Write('gefunden als ');
- Write(search);
- END;
- TextColor(LightGray);
- WriteLn(' ');
- END.
- (* ------------------------------------------------------ *)
- (* Ende von WHICH.PAS *)
-
-