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 .

  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
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 .