new
[scilab.git] / scilab_doc / intro / chap4.tex
index 2e998bc..8b90c50 100755 (executable)
@@ -1,5 +1,3 @@
-% Copyright INRIA
-
 \chapter{Basic Primitives}
 \label{ch5}
 This chapter briefly describes some basic primitives of Scilab.
@@ -125,6 +123,58 @@ mfprintf}\index{mfprintf@{\tt mfprintf}}  can be also used
 --> mclose(fd)
 \end{verbatim}
 
+Here is a table of useful input-output functions:
+
+\begin{center}
+\begin{tabular}{|c|c|}
+\hline
+\verb!mprintf! & print in standard output\\ \hline
+
+\verb!mfprintf! & print in a file\\ \hline
+
+\verb!msprintf! & print in a string matrix \\ \hline
+
+\verb!mscanf! & read in standard input \\ \hline
+
+\verb!mfscanf! & read in a file \\ \hline
+
+\verb!msscanf! & read in a string matrix \\ \hline
+
+\verb!fprintfMat! & formated write a matrix into a file  \\ \hline
+
+\verb!fscanfMat! & formated read of a matrix in a file \\ \hline
+
+\verb!mgetl! & read a file as a Scilab string matrix  \\ \hline
+
+\verb!mputl! & write a string matrix \\ \hline
+
+\verb!mopen! & open a file \\ \hline
+
+\verb!mclose! & close a file\\ \hline
+\end{tabular}
+\end{center}
+
+To manipulate binary files, the following functions are available:
+\begin{center}
+\begin{tabular}{|c|c|}
+\hline
+\verb!mget! & read binary data\\ \hline
+
+\verb!mput! & write binary data\\ \hline
+
+\verb!mgetstr! & print in a string matrix \\ \hline
+
+\verb!mputstr! & write a string matrix \\ \hline
+
+\verb!mgetstr! & read in a file \\ \hline
+
+\verb!mtell! & current position in a file\\ \hline
+
+\verb!mseek! & move current position  \\ \hline
+
+\verb!meof! & end of file test \\ \hline
+\end{tabular}
+\end{center}
 
 \section{Help}
 On-line help is available either by clicking on the 
@@ -156,25 +206,27 @@ can be obtained by entering {\tt help}. For each manual entry the
 \begin{itemize}
 \item{Elementary functions: {\tt sum, prod, sqrt, diag, cos, max, round, sign, fft}}
 \item{Sorting: {\tt sort, gsort, find}}
-\item{Specific Matrices: {\tt zeros, eye, ones, matrix, empty}}
+\item{Specific Matrices: {\tt zeros, eye, ones, matrix}}
 \item{Linear Algebra: {\tt det, inv, qr, svd, bdiag, spec, schur}}
 \item{Polynomials}: {\tt poly, roots, coeff, horner, clean, freq}
 \item{Buttons, dialog: \verb!x_choose, x_dialog, x_mdialog, getvalue, addmenu!}
+\item{GUI (Tcl-tk): \verb!TK_EvalStr, TK_GetVar, TK_SetVar, TK_EvalFile!}
 \item{Linear systems: {\tt syslin}}
-\item{Random numbers: {\tt rand}}
+\item{Random numbers: {\tt rand}, {\tt grand}}
 \item{Programming: {\tt function, deff, argn, for, if, end, while, 
 select, warning, error, break, return}}
 \item{Comparison symbols: {\tt ==}, {\tt >=}, {\tt >}, {\tt ~=}, {\verb!&!}
 ({\tt and}),{\tt |} ({\tt or})}
 \item{Execution of a file: {\tt exec}}
 \item{Debugging: {\tt pause, return, abort}}
-\item{Spline functions, interpolation: {\tt splin, interp, interpln}}
-\item{Character strings: {\tt string, part, evstr, execstr}}
-\item{Graphics: {\tt plot, xset, driver, plot2d, xgrid, locate, plot3d, Graphics}}
+\item{Spline functions, interpolation: {\tt splin2d, interp2d, smooth, splin3d}}
+\item{Character strings: {\tt string, part, evstr, execstr, grep}}
+\item{Graphics: {\tt plot2d, set, get, xgrid, locate, plot3d, Graphics}}
 \item{Ode solvers: {\tt ode, dassl, dassrt, odedc}}
-\item{Optimization: {\tt optim, quapro, linpro, lmitool}}
+\item{Optimization: {\tt optim, quapro, linpro, lmitool, lsqrsolve}}
 \item{Interconnected dynamic systems: {\tt scicos}}
-\item{Adding a C or Fortran routine: {\tt link, fort, addinter, intersci}}
+\item{Adding a C or Fortran routine: {\verb!link, call, addinter, ilib_for_link, ilib_build!}}
+\item{Graphs, networks: {\verb! edit_graph, metanet!}}
 \end{itemize}
 
 
@@ -236,9 +288,6 @@ permanent manner by inserting it in a specific interface in
 {\tt SCIDIR/routines/default} and rebuild a new Scilab by a 
 {\tt make all} command in the Scilab directory.
 
-
-
-
 \section{XWindow Dialog}
 It may be convenient to open a specific XWindow window for entering
 interactively parameters inside a function or for a demo.
@@ -253,3 +302,18 @@ A Graphic User Interface object can be created by the function
 \verb!uicontrol!. Basic primitives are \verb!TK_EvalFile!,
 \verb!TK_EvalStr! and \verb! TK_GetVar, TK_Setvar!. Examples
 are given by invoking the help of these functions.
+
+Let us give a simple dialog. We pass a script to TK as a Scilab
+string matrix, TK opens a dialog box, and the result is returned
+to Scilab as a string, using \verb!TK_GetVar!.
+\begin{verbatim}
+-->TK_script=["toplevel .dialog";
+              "label .dialog.1 -text ""Enter your input\n here""";
+              "pack .dialog.1";
+              "entry .dialog.e -textvariable scivar";
+              "set scivar """"";
+              "pack .dialog.e"];
+-->TK_EvalStr(TK_script);
+-->text=TK_GetVar(scivar);
+\end{verbatim}
+