home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / OB3.2D2.DMS / in.adf / Module / In.mod < prev    next >
Encoding:
Text File  |  1994-08-05  |  2.0 KB  |  118 lines

  1. (*-------------------------------------------------------------------------*)
  2. (*                                                                         *)
  3. (*  Amiga Oberon Library Module: In                   Date: 02-Nov-92      *)
  4. (*                                                                         *)
  5. (*   © 1992 by Fridtjof Siebert                                            *)
  6. (*                                                                         *)
  7. (*-------------------------------------------------------------------------*)
  8.  
  9. MODULE In;
  10.  
  11. IMPORT ASCII,
  12.        io,
  13.        rio  := RealInOut,
  14.        lrio := LongRealInOut;
  15.  
  16. VAR
  17.   Done*: BOOLEAN;
  18.  
  19.  
  20. PROCEDURE Open*;
  21. BEGIN
  22.   Done := TRUE;
  23. END Open;
  24.  
  25.  
  26. PROCEDURE Char*(VAR ch: CHAR);
  27. CONST
  28.   eof = 1CX;
  29. BEGIN
  30.   IF Done THEN
  31.     io.Read(ch);
  32.     Done := ch#eof;
  33.   END;
  34. END Char;
  35.  
  36.  
  37. PROCEDURE Int*(VAR i: INTEGER);
  38. BEGIN
  39.   IF Done THEN
  40.     Done := io.ReadInteger(i);
  41.   END;
  42. END Int;
  43.  
  44.  
  45. PROCEDURE LongInt*(VAR i: LONGINT);
  46. BEGIN
  47.   IF Done THEN
  48.     Done := io.ReadInt(i);
  49.   END;
  50. END LongInt;
  51.  
  52.  
  53. PROCEDURE Real*(VAR x: REAL);
  54. BEGIN
  55.   IF Done THEN
  56.     Done := rio.ReadReal(x);
  57.   END;
  58. END Real;
  59.  
  60.  
  61. PROCEDURE LongReal*(VAR x: LONGREAL);
  62. BEGIN
  63.   IF Done THEN
  64.     Done := lrio.ReadReal(x);
  65.   END;
  66. END LongReal;
  67.  
  68.  
  69. PROCEDURE Name*(VAR name: ARRAY OF CHAR);
  70. VAR
  71.   ch,cap: CHAR;
  72.   j: LONGINT;
  73. BEGIN
  74.   IF Done THEN
  75.     REPEAT
  76.       Char(ch);
  77.     UNTIL (ch>" ") OR ~ Done;
  78.     j := 0;
  79.     cap := CAP(ch);
  80.     WHILE Done & ((cap<="Z") & (cap>="A") OR (cap<="9") & (cap>="0") OR (cap=".")) DO
  81.       IF j<LEN(name)-1 THEN name[j] := ch; INC(j); END;
  82.       Char(ch);
  83.       cap := CAP(ch);
  84.     END;
  85.     name[j] := 0X;
  86.     Done := j#0;
  87.   END;
  88. END Name;
  89.  
  90.  
  91. PROCEDURE String*(VAR str: ARRAY OF CHAR);
  92. VAR
  93.   ch: CHAR;
  94.   j: LONGINT;
  95. BEGIN
  96.   IF Done THEN
  97.     REPEAT
  98.       Char(ch);
  99.     UNTIL (ch#" ") & (ch#ASCII.lf) OR ~ Done;
  100.     j := 0;
  101.     WHILE Done & (ch#" ") & (ch#ASCII.lf) DO
  102.       IF j<LEN(str)-1 THEN str[j] := ch; INC(j); END;
  103.       Char(ch);
  104.     END;
  105.     str[j] := 0X;
  106.     Done := j#0;
  107.   END;
  108. END String;
  109.  
  110.  
  111. BEGIN
  112.   Done := TRUE;
  113. END In.
  114.  
  115.  
  116.  
  117.  
  118.