home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 09 / tricks / xd.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-06-15  |  1.6 KB  |  68 lines

  1. (* ------------------------------------------------------ *)
  2. (*                      XD.PAS                            *)
  3. (*                  Cross Directory                       *)
  4. (*        (c) 1989  Mario Müller  &  TOOLBOX              *)
  5. (* ------------------------------------------------------ *)
  6. PROGRAM xd;
  7. {$R-,S-,I-,D-,F-,V+,B-,N-,L+,M 1024,0,0 }
  8.  
  9. USES Dos;
  10.  
  11. TYPE
  12.   s12 = STRING[12];
  13.  
  14. VAR
  15.   Eintrag         : SearchRec;
  16.   Wahl,  Akt,  Mu : s12;
  17.   Wwert, Awert,n  : BYTE;
  18.  
  19.   FUNCTION Wert : BYTE;
  20.   VAR
  21.     n, m : BYTE;
  22.   BEGIN
  23.     m := 0;
  24.     FOR n := 1 TO Length(Mu) DO
  25.       IF Pos(Mu[n], Akt) <> 0 THEN
  26.         Inc(m, 12 - Abs(n - Pos(Mu[n], Akt)));
  27.     Inc(m);
  28.     Wert := m;
  29.   END;
  30.  
  31.   PROCEDURE Change;
  32.   VAR
  33.     m : BYTE;
  34.   BEGIN
  35.     Mu := ParamStr(n);
  36.     IF Mu[1] = '.' THEN BEGIN
  37.       ChDir('..');
  38.       Exit;
  39.     END;
  40.     IF Mu[1] = '\' THEN BEGIN
  41.       ChDir('\');
  42.       Exit;
  43.     END;
  44.     FOR m := 1 TO Length(Mu) DO Mu[m] := UpCase(Mu[m]);
  45.     FindFirst('*.*', Hidden + Directory, Eintrag);
  46.     Wwert := 0;
  47.     WHILE DosError = 0 DO BEGIN
  48.       Akt := Eintrag.Name;
  49.       IF Eintrag.Attr AND Directory = 0 THEN Awert := 0
  50.                                         ELSE Awert := Wert;
  51.       IF Awert > Wwert THEN BEGIN
  52.         Wwert := Awert;
  53.         Wahl  := Akt;
  54.       END;
  55.       FindNext(Eintrag);
  56.     END;
  57.     ChDir(Wahl);
  58.   END;
  59.  
  60. BEGIN
  61.   IF ParamCount = 0 THEN
  62.     ChDir('..')
  63.   ELSE
  64.     FOR n := 1 TO ParamCount DO Change;
  65. END.
  66. (* ------------------------------------------------------ *)
  67. (*                  Ende von XD.PAS                       *)
  68.