home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 02 / praxis / spooler.mod < prev    next >
Text File  |  1989-11-15  |  3KB  |  106 lines

  1. (********************************************************)
  2. (*                     SPOOLER.MOD                      *)
  3. (*        Demonstrationsprogramm für das Spool-Modul    *)
  4. (*      (C) Copyright 1989,1990 Jörg Heuser & toolbox   *)
  5. MODULE Spooler;
  6.  
  7. FROM IO   IMPORT WrLn, WrStr, RdStr, RdKey, WrCard;
  8. FROM Lib  IMPORT FatalError;
  9. IMPORT Spool;
  10.  
  11. VAR Meldung  : ARRAY[0..79] OF CHAR;
  12.  
  13. PROCEDURE DisplayError();
  14.  
  15. VAR Fehler : CARDINAL;
  16.  
  17. BEGIN
  18.   Fehler := Spool.Error();
  19.   WrLn();
  20.   CASE Fehler OF
  21.      1 : Meldung := '*** Unzulässige Funktion ! ***';
  22.   |  2 : Meldung := '*** Datei nicht gefunden ! ***';
  23.   |  3 : Meldung := '*** Ungültige Pfadangabe ! ***';
  24.   |  4 : Meldung := '*** Zu viele offene Dateien ! ***';
  25.   |  5 : Meldung := '*** Zugriff verweigert ! ***';
  26.   |  8 : Meldung := '*** Warteschlange ist voll ! ***';
  27.   |  9 : Meldung := '*** Spooler ist beschäftigt ! ***';
  28.   | 12 : Meldung := '*** Dateiname zu lang ! ***';
  29.   | 15 : Meldung := '*** Ungültige Laufwerksangabe ! ***';
  30.   END;
  31.   WrLn();
  32. END DisplayError;
  33.  
  34. VAR DruckDatei     : Spool.QueueEntryTyp;
  35.     Warteschlange  : Spool.QueueTyp;
  36.     Auswahl        : CHAR;
  37.     I              : CARDINAL;
  38. BEGIN
  39.   Meldung
  40.      := 'SPOOLER, (C) 1989,1990 by Jörg Heuser & toolbox';
  41.   WrLn();
  42.   IF NOT (Spool.GetInstalledState()=255) THEN
  43.     FatalError('*** PRINT ist nicht installiert ! ***');
  44.   END;
  45.   Auswahl := '';
  46.   WHILE Auswahl <> 'E' DO
  47.     WrLn();
  48.     Spool.Status(Warteschlange);
  49.     I := 0;
  50.     WrStr('-- Nr. --- Datei ---------------------------');
  51.     WrLn(); WrLn();
  52.     WHILE NOT ( Warteschlange[I,0]= 0C ) DO
  53.       WrStr('   ');
  54.       WrCard(I+1,2);
  55.       WrStr('      ');
  56.       WrStr(Warteschlange[I]);
  57.       WrLn();
  58.       INC(I);
  59.     END;
  60.     IF I=0 THEN
  61.       WrStr('   **      Warteschlange ist leer !');
  62.       WrLn();
  63.     END;
  64.     WrLn();
  65.     WrStr('-- Ende der Warteschlange ! ----------------');
  66.     WrLn(); WrLn();
  67.     WrStr(Meldung);
  68.     WrLn(); WrLn();
  69.     WrStr('[D]rucken einer Datei'); WrLn();
  70.     WrStr('[L]öschen einer Datei '); WrLn();
  71.     WrStr('[W]arteschlange leeren'); WrLn();
  72.     WrStr('[E]nde                '); WrLn();
  73.     WrLn();
  74.     Auswahl := RdKey();
  75.     CASE Auswahl OF
  76.       'd','D' : WrStr('Drucke Datei : ');
  77.                 RdStr(DruckDatei);
  78.                 Spool.SubmitFile(DruckDatei);
  79.                 IF Spool.Error() = 0 THEN
  80.                   Meldung :=
  81.                     'Datei erfolgreich angehängt !';
  82.                 ELSE
  83.                   DisplayError();
  84.                 END;
  85.     | 'l','L' : WrStr('Lösche Datei : ');
  86.                 RdStr(DruckDatei);
  87.                 Spool.CancelFile(DruckDatei);
  88.                 IF Spool.Error() = 0 THEN
  89.                   Meldung :=
  90.                     'Datei(en) erfolgreich gelöscht !';
  91.                 ELSE
  92.                   DisplayError();
  93.                 END;
  94.     | 'w','W' : Spool.CancelAllFiles();
  95.                 IF Spool.Error() = 0 THEN
  96.                   Meldung :=
  97.                     'Warteschlange erfolgreich geleert !';
  98.                 ELSE
  99.                   DisplayError();
  100.                 END;
  101.     | 'e','E' : Auswahl := 'E';
  102.     ELSE
  103.       Meldung := '*** Ungültige Auswahl ! ***';
  104.     END;  (* CASE *)
  105.   END; (* WHILE *)
  106. END Spooler.