home *** CD-ROM | disk | FTP | other *** search
- (*-------------------------------------------------------------------------*)
- (* *)
- (* Amiga Oberon Library Module: In Date: 02-Nov-92 *)
- (* *)
- (* © 1992 by Fridtjof Siebert *)
- (* *)
- (*-------------------------------------------------------------------------*)
-
- MODULE In;
-
- IMPORT ASCII,
- io,
- rio := RealInOut,
- lrio := LongRealInOut;
-
- VAR
- Done*: BOOLEAN;
-
-
- PROCEDURE Open*;
- BEGIN
- Done := TRUE;
- END Open;
-
-
- PROCEDURE Char*(VAR ch: CHAR);
- CONST
- eof = 1CX;
- BEGIN
- IF Done THEN
- io.Read(ch);
- Done := ch#eof;
- END;
- END Char;
-
-
- PROCEDURE Int*(VAR i: INTEGER);
- BEGIN
- IF Done THEN
- Done := io.ReadInteger(i);
- END;
- END Int;
-
-
- PROCEDURE LongInt*(VAR i: LONGINT);
- BEGIN
- IF Done THEN
- Done := io.ReadInt(i);
- END;
- END LongInt;
-
-
- PROCEDURE Real*(VAR x: REAL);
- BEGIN
- IF Done THEN
- Done := rio.ReadReal(x);
- END;
- END Real;
-
-
- PROCEDURE LongReal*(VAR x: LONGREAL);
- BEGIN
- IF Done THEN
- Done := lrio.ReadReal(x);
- END;
- END LongReal;
-
-
- PROCEDURE Name*(VAR name: ARRAY OF CHAR);
- VAR
- ch,cap: CHAR;
- j: LONGINT;
- BEGIN
- IF Done THEN
- REPEAT
- Char(ch);
- UNTIL (ch>" ") OR ~ Done;
- j := 0;
- cap := CAP(ch);
- WHILE Done & ((cap<="Z") & (cap>="A") OR (cap<="9") & (cap>="0") OR (cap=".")) DO
- IF j<LEN(name)-1 THEN name[j] := ch; INC(j); END;
- Char(ch);
- cap := CAP(ch);
- END;
- name[j] := 0X;
- Done := j#0;
- END;
- END Name;
-
-
- PROCEDURE String*(VAR str: ARRAY OF CHAR);
- VAR
- ch: CHAR;
- j: LONGINT;
- BEGIN
- IF Done THEN
- REPEAT
- Char(ch);
- UNTIL (ch#" ") & (ch#ASCII.lf) OR ~ Done;
- j := 0;
- WHILE Done & (ch#" ") & (ch#ASCII.lf) DO
- IF j<LEN(str)-1 THEN str[j] := ch; INC(j); END;
- Char(ch);
- END;
- str[j] := 0X;
- Done := j#0;
- END;
- END String;
-
-
- BEGIN
- Done := TRUE;
- END In.
-
-
-
-
-