up previous next
3.7.4 String IO
To print CoCoA output to a string, on may use OpenOString to open the string, then Print On to write to it. To read from a string, one may open the string for input with OpenIString then get characters from it with Get.

Example
S := "hello world";
D := OpenIString("",S);  -- open the string S for input to CoCoA
              -- the first argument is just a name for the device
L:= Get(D,7);  -- read 7 characters from the string
L;  -- ascii code
[104, 101, 108, 108, 111, 32, 119]
-------------------------------
Ascii(L); -- convert ascii code to characters
hello w
-------------------------------
Close(D);  -- close device D
D := OpenOString("");  -- open a string for output from CoCoA
L := [1,2,3]; -- a list
Print L On D;  -- print to D
D;
Record[Name = "", Type = "OString", Protocol = "CoCoAL"]
-------------------------------
S := Cast(D,STRING);  -- S is the string output printed on D
S; -- a string
[1, 2, 3]
Print " more characters" On D;  -- append to the existing output string
Cast(D,STRING);
[1, 2, 3] more characters
------------------------------- 
There are usually more direct ways to collect results in strings. For instance, if the output of a CoCoA command is not already of type STRING, one may convert it to a string using Sprint.