====================================================================
TextFile examples
====================================================================

The domain TextFile allows FriCAS to read and write character data and
exchange text with other programs.  This type behaves in FriCAS much
like a File of strings, with additional operations to cause new lines.
We give an example of how to produce an upper case copy of a file.

This is the file from which we read the text.

  f1: TextFile := open("/etc/group", "input")
    "/etc/group"
                               Type: TextFile

This is the file to which we write the text.

  f2: TextFile := open("/tmp/MOTD", "output")
    "MOTD"
                               Type: TextFile

Entire lines are handled using the readLine and writeLine operations.

  l := readLine! f1
    "root:x:0:root"
                               Type: String

  writeLine!(f2, upperCase l)
    "ROOT:X:0:ROOT"
                               Type: String

Use the endOfFile? operation to check if you have reached the end of the file.

  while not endOfFile? f1 repeat
    s := readLine! f1
    writeLine!(f2, upperCase s)
                               Type: Void

The file f1 is exhausted and should be closed.

  close! f1
    "/etc/group"
                               Type: TextFile

It is sometimes useful to write lines a bit at a time.  The write operation 
allows this.

  write!(f2, "-The-")
    "-The-"
                               Type: String

  write!(f2, "-End-")
    "-End-"
                               Type: String

This ends the line.  This is done in a machine-dependent manner.

  writeLine! f2
    ""
                               Type: String

  close! f2
    "MOTD"
                               Type: TextFile

Finally, clean up.

  )system rm /tmp/MOTD

See Also:
o )help File
o )help KeyedAccessFile
o )help Library
o )show TextFile

