home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 01 / tricks / bdir.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-10-10  |  2.5 KB  |  86 lines

  1. (* ------------------------------------------------------ *)
  2. (*                       BDIR.PAS                         *)
  3. (*      (c) 1989  Achim Bergmeister  &  TOOLBOX           *)
  4. (* ------------------------------------------------------ *)
  5. PROGRAM B_Dir;
  6.  
  7. USES Crt, Dos, Ergunit, Dirunit;
  8.  
  9. VAR
  10.   zeile                  : zeilen;
  11.   summe                  : LONGINT;
  12.   msk                    : PathStr;
  13.   zaehler, i, datz, zahl : INTEGER;
  14.   c                      : char;
  15.   pfad                   : DirStr;
  16.   zahlstr, sumstr        : STRING[6];
  17.   titel                  : s80;
  18.  
  19.   FUNCTION Kleiner(x, y : INTEGER) : INTEGER;
  20.   BEGIN
  21.     IF x < y THEN Kleiner := x ELSE Kleiner := y;
  22.   END;
  23.  
  24.   PROCEDURE Rahmenfrei;
  25.   BEGIN
  26.     ClrScr;  FOR i := 2 TO 24 DO Wrtxy(40, i, '│');
  27.   END;
  28.  
  29.   PROCEDURE Ausgabe(ab : INTEGER; VAR stand : INTEGER);
  30.   VAR
  31.     i : INTEGER;
  32.   BEGIN
  33.     FOR i := 1 + ab TO Kleiner(23 + ab, zaehler) DO
  34.       Wrtxy(9, i + 1 - ab, zeile[i]);
  35.     IF zaehler >= datz THEN
  36.       FOR i := 24 + ab TO Kleiner(46 + ab, zaehler) DO
  37.         Wrtxy(42, i - 22 - ab, zeile[i]);
  38.     stand := i;
  39.   END;
  40.  
  41. BEGIN
  42.   IF paramcount > 0 THEN msk := ParamStr(1)
  43.                     ELSE msk := '*.*';
  44.   GetDir(0, pfad);
  45.   IF Length(pfad) > 3 THEN titel := pfad + '\' + msk
  46.                       ELSE titel := pfad + msk;
  47.   c_off;  ClrScr;
  48.   summe := 0;  zaehler := 0;
  49.   datz  := 0;  zahl    := 0;
  50.   FOR i := 1 TO 200 DO zeile[i] := '';
  51.   Dir(zeile, zaehler, summe, msk);
  52.   Hell;
  53.   Window(8, 2, 72, 24);
  54.   rahmen(7, 1, 73, 25, 1, ' ' + titel + ' ');
  55.   rahmenfrei;
  56.   Invers;
  57.   IF zaehler < 47 THEN
  58.     Wrtxy(65, 25, ' ESC ')
  59.   ELSE
  60.     Wrtxy(59, 25, ' ' +Chr(27) +' │ ' +Chr(26) +' │ ESC ');
  61.   Hell;
  62.   Str(zaehler, zahlstr);  Str(summe, sumstr);
  63.   Wrtxy(20, 25, ' ' + zahlstr + ' Dateien belegen ' +
  64.                       sumstr + ' Bytes. ');         Normal;
  65.   ausgabe(zahl, datz);
  66.   REPEAT
  67.     c := ReadKey;
  68.     IF c = #0 THEN BEGIN
  69.       c := ReadKey;
  70.       CASE c OF
  71.         #77: IF zaehler > datz THEN BEGIN
  72.                Inc(zahl, 23);  Rahmenfrei;
  73.                ausgabe(zahl, datz);
  74.              END ELSE Beep;
  75.         #75: IF zahl > 0 THEN BEGIN
  76.                Dec(zahl, 23);  Rahmenfrei;
  77.                ausgabe(zahl, datz);
  78.              END ELSE Beep;
  79.         ELSE Beep;
  80.       END;
  81.     END;
  82.   UNTIL c = #27;
  83.   Window(1, 1, 80, 25);  GotoXY(1, 25);  c_on;
  84. END.
  85. (* ------------------------------------------------------ *)
  86. (*                  Ende von BDIR.PAS                     *)