tynor@gitpyr.UUCP (Steve Tynor) (02/26/86)
Re: the recent note pointing out the deficiencies of the TDI InOut
module:
Actually, I think the problem lies in the TextIO module. I've had
similar problems to those described while using TextIO. Here's what I'm
trying to read: a file of CARDINALs (one to a line):
1
2
3
4
etc...
I was trying to use:
LOOP
TextIO.REadCard (stream, c);
TextIO.REadLn (stream);
END;
but unfortunately, TextIO doesn't work as you'd expect (so what's new?)
Here's what I've actually had to do in order to get this to work: I've
changed the file format to put a blank line in between each CARDINAL. Thus:
1
2
3
4
etc.
and i've had to change my code to:
LOOP
TextIO.REadCard (stream, c);
TextIO.REadLn (stream);
TextIO.REad (stream, DUMMYCHAR);
END;
talk about a kludge...
------------------------------------------------------------
Also, I've noticed that the TDI compiler doesn't check function return
value types, thus:
PROCEDURE p () : Pointer1Type;
VAR
p2 : Pointer2Type;
BEGIN
RETURN p2;
END p;
is *NOT* flagged as an error.
------------------------------------------------------------
Also, I've had trouble using Strings. Say you have a proc:
PROCEDURE p (VAR str : ARRAY OF CHAR);
You can't call:
p ('this is a string constant');
But you can do:
CONST str = 'this is also a string constant';
p (str);
------------------------------------------------------------
Also, when I try to use a Set constant with about 30 elements (they *say*
that they can handle them...) then do a:
IF MyVar IN BigConstantSet THEN
...
I get MUSHROOMS from the COMPILER !!!!
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Progress means replacing something wrong with something more subtly wrong.
Steve Tynor
Georgia Instutute of Technology
...{akgua, allegra, amd, harpo, hplabs,
ihnp4, masscomp, ut-ngp, rlgvax, sb1,
uf-cgrl, unmvax, ut-sally} !gatech!gitpyr!tynor