home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Global Amiga Experience
/
globalamigaexperience.iso
/
compressed
/
development
/
clusterdemo.dms
/
clusterdemo.adf
/
Modules.lha
/
modules
/
txt
/
InOut.def
< prev
next >
Wrap
Text File
|
1994-05-25
|
11KB
|
308 lines
|##########|
|#MAGIC #|CLABLLHC
|#PROJECT #|"ImportAll"
|#PATHS #|"StdProject"
|#FLAGS #|xx---x--x---x-x-----------------
|#USERSW #|--------------------------------
|#USERMASK#|--------------------------------
|#SWITCHES#|xx---xxxxx------
|##########|
|==============================================================================|
| Modul : InOut |
| Autor : Thomas Pfrengle |
| Datum : 10.10 991 |
| Verwendung : Ausgabe von Strings, Zeichen und Zahlen auf einen Strom |
| Änderungen : - |
|==============================================================================|
DEFINITION MODULE InOut;
(* $ A- *)
FROM Streams IMPORT Stream,Termination;
FROM ASCII IMPORT cr,lf,eof,sp,ff;
| Alle Prozeduren in diesem Modul haben einen Handle als Parameter, der
| zu den Handlen aus dem Modul Streams kompaltibel ist. Man kann hier also einen
| eigenen Stream übergeben, den man mit Streams geöffnet hat. Übergibt man
| keinen Handle, wird der aktuelle Standartstrom aus Streams genommen, existiert
| noch keiner, wird ein Standart-ConsoleWindow als Stream geöffnet.
VAR
Return : BOOLEAN:=TRUE; | Gibt an, ob am Programmende auf ein
| Return gewartet wird Sandardeinstellung.
GROUP
ParamGrp = Return;
|
| OpenInput : Dient dazu den Standarteingabekanal (normalerweise das
| NewCon-Window) auf ein anderes Gerät, oder eine Datei
| umzulegen, der Name des Gerätes/Files steht in name.
| OpenOutput : Wie OpenInPut, jedoch für den Ausgabekanal.
|
| CloseInput,
| CloseOutPut : Einen selbst geöffneten Ein/Ausgabekanal sollte man mit
| diesen Prozeduren am Programmende wieder schließen. Als
| Standardkanal gilt nach dem schließen, der zuletzt aktive
| Standardstrom
|
PROCEDURE OpenInput(REF name : STRING);
PROCEDURE CloseInput;
PROCEDURE OpenOutput(REF name : STRING);
PROCEDURE CloseOutput;
GROUP
RedirectionGrp = OpenInput,CloseInput,OpenOutput,CloseOutput;
|
| Style : Aufzählungstyp mit verschiedenen Schriftformen,
| die mit SetStyle gesetzt werden können.
| normal : Normale Schrift
| italic : Kursive Schrift
| undelined : Unterstrichen
| bold : Fettdruck
| invers : Invertierte Ausgabe
|
| SetStyle : Setzt einen der Schreibstile aus dem Aufzählungstyp Style.
|
| ClearStyle : Setzt den Standartschreibstil.
|
| SetColor : Setzt Vordergrund- (foreground) und Hintergrundfarbe
| (background).
| ClearWindow: Löscht Ausgabefenster.
TYPE
Style = (normal,italic,underlined,bold,invers);
PROCEDURE SetStyle(style : Style;handle : Stream:=NIL);
PROCEDURE ClearStyle(handle : Stream:=NIL);
PROCEDURE SetColor(foreground,background : SHORTINT;handle : Stream:=NIL);
PROCEDURE ClearWindow(handle : Stream:=NIL);
GROUP
StyleGrp = SetStyle,ClearStyle,SetColor,ClearWindow;
|
| AUFGABE : Gibt ein Zeichen aus.
| PARAMETER : c <= Zeichen das ausgegeben werden soll
| BEMERKUNGEN : Ist c=&10 und WriteLnBuffer ist TRUE, dann wird der Puffer|
| ausgegeben, wenn einer vorhanden ist.
PROCEDURE Write(c : CHAR;handle : Stream:=NIL);
|
| AUFGABE : Gibt eine Zeichenkette aus
| PARAMETER : s <= String der ausgegeben werden soll
| BEMERKUNGEN : Ist &10 im String enthalten und WriteLnBuffer ist TRUE,
| dann wird der Puffer ausgegeben, wenn einer vorhanden ist.|
| WriteMString gibt einen Modula-String aus.
PROCEDURE WriteString(REF s : STRING;handle : Stream:=NIL);
PROCEDURE WriteMString(REF s : ARRAY OF CHAR;handle : Stream:=NIL);
|
| AUFGABE : Wie WriteString, jedoch wird vor dem String noch ein Esc
| ausgegeben.
| PARAMETER : s <= String der ausgegeben werden soll
| BEMERKUNGEN : Besonders für Esc-Sequencen zur Druckersteuerung zu ge-
| brauchen, sonst wie bei WriteString
PROCEDURE WriteEsc(REF s : STRING;handle : Stream:=NIL);
|
| AUFGABE : Führt einen Zeilenvorschub durch.
| PARAMETER : Keine.
| BEMERKUNGEN : Ist WriteLnBuffer TRUE, wird der Puffer ausgegeben, sofern
| die Ausgabe gepuffert ist.
|
PROCEDURE WriteLn(handle : Stream:=NIL);
|
| AUFGABE : Gibt den Puffer aus, wenn keiner existiert, entsteht ein
| Laufzeitfehler.
| PARAMETER : Keine.
| BEMERKUNGEN : Keine.
PROCEDURE WriteBuffer(handle : Stream:=NIL);
|
| AUFGABE : Ausgabe einer Integerzahl.
| PARAMETER : val <= Zahl die Ausgegeben werden soll.
| field <= Größe des Feldes, in dem die Zahl positioniert
| werden soll.
| BEMERKUNGEN : Ist field = 0 wird die Zahl in einem genau passenden Feld
| positioniert. Ist field > 0 wird die Zahl rechtsbündig,
| für field < 0 linksbündig angeordnet.
PROCEDURE WriteInt(val : LONGINT;
field : INTEGER:=0;
handle : Stream:=NIL);
|
| AUFGABE : Gibt eine Integerzahl als Hexwert aus, sonst wie WriteInt.
| PARAMETER : val <= Ausgabewert.
| field <= Feldgröße.
| dollar <= Gibt an, ob ein "$" vor die Zahl gesetzt werden soll
| BEMERKUNGEN : Keine.
|
PROCEDURE WriteHex(val : LONGINT;
field : INTEGER:=0;
dollar : BOOLEAN:=FALSE;
handle : Stream:=NIL);
|
| AUFGABE : Gibt eine Integerzahl als Binärzahl aus, sonst wie WriteInt.
| PARAMETER : val <= Ausgabewert.
| field <= Feldgröße.
| sign <= Gibt an, ob ein "%" vor die Zahl gesetzt werden soll
| BEMERKUNGEN : Keine.
|
PROCEDURE WriteBin(val : LONGINT;
field : INTEGER:=0;
sign : BOOLEAN:=FALSE;
handle : Stream:=NIL);
|
| AUFGABE : Ausgabe einer Cardinalzahl.
| PARAMETER : val <= Zahl die Ausgegeben werden soll.
| field <= Größe des Feldes, in dem die Zahl positioniert
| werden soll.
| BEMERKUNGEN : Ist field = 0 wird die Zahl in einem genau passenden Feld
| positioniert. Ist field > 0 wird die Zahl rechtsbündig,
| für field < 0 linksbündig angeordnet.
PROCEDURE WriteCard(val : LONGCARD;field: INTEGER:=0;handle : Stream:=NIL);
|
| AUFGABE : Gibt eine Cardinalzahl als Hexwert aus, sonst wie WriteCard.
| PARAMETER : val <= Ausgabewert.
| field <= Feldgröße.
| dollar <= Gibt an, ob ein "$" vor die Zahl gesetzt werden soll
| BEMERKUNGEN : Keine.
|
PROCEDURE WriteCardHex(val : LONGCARD;
field : INTEGER:=0;
dollar : BOOLEAN:=FALSE;
handle : Stream:=NIL);
|
| AUFGABE : Gibt eine Cardinalzahl als Binärzahl aus, sonst wie WriteCard.
| PARAMETER : val <= Ausgabewert.
| field <= Feldgröße.
| sign <= Gibt an, ob ein "%" vor die Zahl gesetzt werden soll
| BEMERKUNGEN : Keine.
|
PROCEDURE WriteCardBin(val : LONGCARD;
field : INTEGER:=0;
sign : BOOLEAN:=FALSE;
handle : Stream:=NIL);
|
| AUFGABE : Ausgabe einer Fließkommazahl.
| PARAMETER : val <= Ausgabewert.
| field <= Ausgabefeld, in dem die Zahl kommabündig
| positioniert wird.
| digits <= Zahl der auszugebenden Nachkommastellen.
| BEMERKUNGEN : Keine.
PROCEDURE WriteReal(val : LONGREAL;
field,
digits : CARDINAL;
handle : Stream:=NIL);
|
| AUFGABE : Ausgabe einer Fließkommazahl in Exponetialdarstellung.
| PARAMETER : val <= Ausgabewert.
| digits <= Zahl der auszugebenden Nachkommastellen.
| BEMERKUNGEN : Zahl wird linksbündig ausgegeben.
PROCEDURE WriteExpReal(val : LONGREAL;
digits: CARDINAL;
handle : Stream:=NIL);
GROUP
WriteGrp = WriteString,WriteMString,WriteEsc,WriteLn,WriteBuffer,WriteInt,
WriteHex,WriteReal,WriteExpReal,Write;
|
| AUFGABE : Liest ein Zeichen ein.
| PARAMETER : c => Gelesenes Zeichen.
| BEMERKUNGEN : Keine.
PROCEDURE Read(VAR c :CHAR;handle : Stream:=NIL);
|
| AUFGABE : Liest einen Boolwert ein.
| PARAMETER : => gelesener Boolwert.
| BEMERKUNGEN : Siehe Handbuch.
PROCEDURE ReadBool(handle : Stream:=NIL;returnEqualTrue : BOOLEAN:=FALSE):BOOLEAN;
|
| AUFGABE : Liest einen String ein.
| PARAMETER : s => eingelesener String.
| BEMERKUNGEN : Siehe Handbuch.
| : ReadMString liest einen Modula-String ein.
PROCEDURE ReadString(VAR s : STRING;terms := Termination:(sp,lf,cr,ff,eof,eof,eof,eof);handle : Stream:=NIL);
PROCEDURE ReadMString(VAR s : ARRAY OF CHAR;terms:= Termination:(sp,lf,cr,ff,eof,eof,eof,eof);handle : Stream:=NIL);
|
| AUFGABE : Die folgenden Read-Prozeduren lesen alle einen Zahlenwert
| ein.
| PARAMETER : val => gelesener Wert vom jeweiligen Typ von val.
| BEMERKUNGEN : Die Zahl wird bis zum ersten Auftreten einer Nichtziffer
| ausgwertet. Gibt man vor der Zahl ein `$` an, wird die
| darauffolgende Zahl als Hex-Zahl ausgewertet, durch ein `%`
| wird sie als Binärzahl verstanden. Dies funktioniert nicht bei
| ReadReal,ReadFFP,ReadLongReal. Drückt man als Eingabe nur auf Return,
| wird die übergebene Variable nicht verändert
PROCEDURE ReadShortInt(VAR val : SHORTINT;handle : Stream:=NIL);
PROCEDURE ReadInt(VAR val : INTEGER;handle : Stream:=NIL);
PROCEDURE ReadLongInt(VAR val : LONGINT;handle : Stream:=NIL);
PROCEDURE ReadShortCard(VAR val : SHORTCARD;handle : Stream:=NIL);
PROCEDURE ReadCard(VAR val : CARDINAL;handle : Stream:=NIL);
PROCEDURE ReadLongCard(VAR val : LONGCARD;handle : Stream:=NIL);
PROCEDURE ReadReal(VAR val : REAL;handle : Stream:=NIL);
PROCEDURE ReadFFP(VAR val : FFP;handle : Stream:=NIL);
PROCEDURE ReadLongReal(VAR val : LONGREAL;handle : Stream:=NIL);
GROUP
ReadGrp = Read,ReadBool,ReadString,ReadMString,ReadShortInt,ReadInt,
ReadLongInt,ReadShortCard,ReadCard,ReadLongCard,ReadReal,ReadFFP,
ReadLongReal;
StreamGrp = Streams.ExceptionGrp,Streams.GlobalGrp;
All = ParamGrp,WriteGrp,StyleGrp,ReadGrp,StreamGrp,RedirectionGrp;
END InOut.