aboutsummaryrefslogtreecommitdiff
path: root/src/hyper/pages/FILE.ht
diff options
context:
space:
mode:
Diffstat (limited to 'src/hyper/pages/FILE.ht')
-rw-r--r--src/hyper/pages/FILE.ht103
1 files changed, 103 insertions, 0 deletions
diff --git a/src/hyper/pages/FILE.ht b/src/hyper/pages/FILE.ht
new file mode 100644
index 00000000..93fa12b6
--- /dev/null
+++ b/src/hyper/pages/FILE.ht
@@ -0,0 +1,103 @@
+% Copyright The Numerical Algorithms Group Limited 1992-94. All rights reserved.
+% !! DO NOT MODIFY THIS FILE BY HAND !! Created by ht.awk.
+\newcommand{\FileXmpTitle}{File}
+\newcommand{\FileXmpNumber}{9.24}
+%
+% =====================================================================
+\begin{page}{FileXmpPage}{9.24 File}
+% =====================================================================
+\beginscroll
+
+The \spadtype{File(S)} domain provides a basic interface to read and
+write values of type \spad{S} in files.
+\xtc{
+Before working with a file, it must be made accessible to \Language{} with
+the \spadfunFrom{open}{File} operation.
+}{
+\spadpaste{ifile:File List Integer:=open("/tmp/jazz1","output") \bound{ifile}}
+}
+The \spadfunFrom{open}{File} function arguments are a \spadtype{FileName}
+and a \spadtype{String} specifying the mode.
+If a full pathname is not specified, the current default directory is
+assumed.
+The mode must be one of \spad{"input"} or \spad{"output"}.
+If it is not specified, \spad{"input"} is assumed.
+Once the file has been opened, you can read or write data.
+\xtc{
+The operations \spadfunFromX{read}{File} and \spadfunFromX{write}{File} are
+provided.
+}{
+\spadpaste{write!(ifile, [-1,2,3]) \free{ifile}\bound{ifile1}}
+}
+\xtc{
+}{
+\spadpaste{write!(ifile, [10,-10,0,111]) \free{ifile1}\bound{ifile2}}
+}
+\xtc{
+}{
+\spadpaste{write!(ifile, [7]) \free{ifile2}\bound{ifile3}}
+}
+\xtc{
+You can change from writing to reading (or vice versa)
+by reopening a file.
+}{
+\spadpaste{reopen!(ifile, "input") \free{ifile3}\bound{ifile4}}
+}
+\xtc{
+}{
+\spadpaste{read! ifile \free{ifile4}\bound{ifile5}}
+}
+\xtc{
+}{
+\spadpaste{read! ifile \free{ifile5}\bound{ifile6}}
+}
+\xtc{
+The \spadfunFromX{read}{File} operation can cause an error if one tries to
+read more data than is in the file.
+To guard against this possibility the \spadfunFromX{readIfCan}{File}
+operation should be used.
+}{
+\spadpaste{readIfCan! ifile \free{ifile6}\bound{ifile7}}
+}
+\xtc{
+}{
+\spadpaste{readIfCan! ifile \free{ifile7}\bound{ifile8}}
+}
+\xtc{
+You can find the current mode of the file, and the file's name.
+}{
+\spadpaste{iomode ifile \free{ifile}}
+}
+\xtc{
+}{
+\spadpaste{name ifile \free{ifile}}
+}
+\xtc{
+When you are finished with a file, you should close it.
+}{
+\spadpaste{close! ifile \free{ifile}\bound{ifileA}}
+}
+\noOutputXtc{
+}{
+\spadpaste{)system rm /tmp/jazz1 \free{ifileA}}
+}
+%\xtc{
+%}{
+%\spadcommand{)clear all \free{}\bound{}}
+%}
+
+A limitation of the underlying LISP system is that not all values can be
+represented in a file.
+In particular, delayed values containing compiled functions cannot be
+saved.
+
+For more information on related topics, see
+\downlink{`TextFile'}{TextFileXmpPage}\ignore{TextFile},
+\downlink{`KeyedAccessFile'}{KeyedAccessFileXmpPage}\ignore{KeyedAccessFile},
+\downlink{`Library'}{LibraryXmpPage}\ignore{Library}, and
+\downlink{`FileName'}{FileNameXmpPage}\ignore{FileName}.
+\showBlurb{File}
+\endscroll
+\autobuttons
+\end{page}
+%