home *** CD-ROM | disk | FTP | other *** search
- (********************************************************)
- (* SPOOLER.MOD *)
- (* Demonstrationsprogramm für das Spool-Modul *)
- (* (C) Copyright 1989,1990 Jörg Heuser & toolbox *)
- MODULE Spooler;
-
- FROM IO IMPORT WrLn, WrStr, RdStr, RdKey, WrCard;
- FROM Lib IMPORT FatalError;
- IMPORT Spool;
-
- VAR Meldung : ARRAY[0..79] OF CHAR;
-
- PROCEDURE DisplayError();
-
- VAR Fehler : CARDINAL;
-
- BEGIN
- Fehler := Spool.Error();
- WrLn();
- CASE Fehler OF
- 1 : Meldung := '*** Unzulässige Funktion ! ***';
- | 2 : Meldung := '*** Datei nicht gefunden ! ***';
- | 3 : Meldung := '*** Ungültige Pfadangabe ! ***';
- | 4 : Meldung := '*** Zu viele offene Dateien ! ***';
- | 5 : Meldung := '*** Zugriff verweigert ! ***';
- | 8 : Meldung := '*** Warteschlange ist voll ! ***';
- | 9 : Meldung := '*** Spooler ist beschäftigt ! ***';
- | 12 : Meldung := '*** Dateiname zu lang ! ***';
- | 15 : Meldung := '*** Ungültige Laufwerksangabe ! ***';
- END;
- WrLn();
- END DisplayError;
-
- VAR DruckDatei : Spool.QueueEntryTyp;
- Warteschlange : Spool.QueueTyp;
- Auswahl : CHAR;
- I : CARDINAL;
- BEGIN
- Meldung
- := 'SPOOLER, (C) 1989,1990 by Jörg Heuser & toolbox';
- WrLn();
- IF NOT (Spool.GetInstalledState()=255) THEN
- FatalError('*** PRINT ist nicht installiert ! ***');
- END;
- Auswahl := '';
- WHILE Auswahl <> 'E' DO
- WrLn();
- Spool.Status(Warteschlange);
- I := 0;
- WrStr('-- Nr. --- Datei ---------------------------');
- WrLn(); WrLn();
- WHILE NOT ( Warteschlange[I,0]= 0C ) DO
- WrStr(' ');
- WrCard(I+1,2);
- WrStr(' ');
- WrStr(Warteschlange[I]);
- WrLn();
- INC(I);
- END;
- IF I=0 THEN
- WrStr(' ** Warteschlange ist leer !');
- WrLn();
- END;
- WrLn();
- WrStr('-- Ende der Warteschlange ! ----------------');
- WrLn(); WrLn();
- WrStr(Meldung);
- WrLn(); WrLn();
- WrStr('[D]rucken einer Datei'); WrLn();
- WrStr('[L]öschen einer Datei '); WrLn();
- WrStr('[W]arteschlange leeren'); WrLn();
- WrStr('[E]nde '); WrLn();
- WrLn();
- Auswahl := RdKey();
- CASE Auswahl OF
- 'd','D' : WrStr('Drucke Datei : ');
- RdStr(DruckDatei);
- Spool.SubmitFile(DruckDatei);
- IF Spool.Error() = 0 THEN
- Meldung :=
- 'Datei erfolgreich angehängt !';
- ELSE
- DisplayError();
- END;
- | 'l','L' : WrStr('Lösche Datei : ');
- RdStr(DruckDatei);
- Spool.CancelFile(DruckDatei);
- IF Spool.Error() = 0 THEN
- Meldung :=
- 'Datei(en) erfolgreich gelöscht !';
- ELSE
- DisplayError();
- END;
- | 'w','W' : Spool.CancelAllFiles();
- IF Spool.Error() = 0 THEN
- Meldung :=
- 'Warteschlange erfolgreich geleert !';
- ELSE
- DisplayError();
- END;
- | 'e','E' : Auswahl := 'E';
- ELSE
- Meldung := '*** Ungültige Auswahl ! ***';
- END; (* CASE *)
- END; (* WHILE *)
- END Spooler.