home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* XD.PAS *)
- (* Cross Directory *)
- (* (c) 1989 Mario Müller & TOOLBOX *)
- (* ------------------------------------------------------ *)
- PROGRAM xd;
- {$R-,S-,I-,D-,F-,V+,B-,N-,L+,M 1024,0,0 }
-
- USES Dos;
-
- TYPE
- s12 = STRING[12];
-
- VAR
- Eintrag : SearchRec;
- Wahl, Akt, Mu : s12;
- Wwert, Awert,n : BYTE;
-
- FUNCTION Wert : BYTE;
- VAR
- n, m : BYTE;
- BEGIN
- m := 0;
- FOR n := 1 TO Length(Mu) DO
- IF Pos(Mu[n], Akt) <> 0 THEN
- Inc(m, 12 - Abs(n - Pos(Mu[n], Akt)));
- Inc(m);
- Wert := m;
- END;
-
- PROCEDURE Change;
- VAR
- m : BYTE;
- BEGIN
- Mu := ParamStr(n);
- IF Mu[1] = '.' THEN BEGIN
- ChDir('..');
- Exit;
- END;
- IF Mu[1] = '\' THEN BEGIN
- ChDir('\');
- Exit;
- END;
- FOR m := 1 TO Length(Mu) DO Mu[m] := UpCase(Mu[m]);
- FindFirst('*.*', Hidden + Directory, Eintrag);
- Wwert := 0;
- WHILE DosError = 0 DO BEGIN
- Akt := Eintrag.Name;
- IF Eintrag.Attr AND Directory = 0 THEN Awert := 0
- ELSE Awert := Wert;
- IF Awert > Wwert THEN BEGIN
- Wwert := Awert;
- Wahl := Akt;
- END;
- FindNext(Eintrag);
- END;
- ChDir(Wahl);
- END;
-
- BEGIN
- IF ParamCount = 0 THEN
- ChDir('..')
- ELSE
- FOR n := 1 TO ParamCount DO Change;
- END.
- (* ------------------------------------------------------ *)
- (* Ende von XD.PAS *)