[BACK]Return to io.texi CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-doc / parts / builtin

Diff for /OpenXM/src/asir-doc/parts/builtin/io.texi between version 1.2 and 1.7

version 1.2, 1999/12/21 02:47:33 version 1.7, 2001/04/23 05:45:37
Line 1 
Line 1 
 @comment $OpenXM$  @comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/io.texi,v 1.6 2001/03/12 05:01:18 noro Exp $
 \BJP  \BJP
 @node $BF~=PNO(B,,, $BAH$_9~$_H!?t(B  @node $BF~=PNO(B,,, $BAH$_9~$_H!?t(B
 @section $BF~=PNO(B  @section $BF~=PNO(B
Line 16 
Line 16 
 * bsave bload::  * bsave bload::
 * bload27::  * bload27::
 * print::  * print::
   * open_file close_file get_line get_byte put_byte purge_stdin::
 @end menu  @end menu
   
 \JP @node end quit,,, $BF~=PNO(B  \JP @node end quit,,, $BF~=PNO(B
Line 81  line of the input file is strongly recommended.
Line 82  line of the input file is strongly recommended.
 @table @t  @table @t
 @item load("@var{filename}")  @item load("@var{filename}")
 \JP :: @var{filename} $B$rFI$_9~$`(B.  \JP :: @var{filename} $B$rFI$_9~$`(B.
 \EG :: Read a program file @var{filename}.  \EG :: Reads a program file @var{filename}.
 @end table  @end table
   
 @table @var  @table @var
Line 330  output();
Line 331  output();
 @item bsave(@var{obj},"@var{filename}")  @item bsave(@var{obj},"@var{filename}")
 \JP :: @var{filename} $B$K(B @var{obj} $B$r%P%$%J%j7A<0$G=q$-9~$`(B.  \JP :: @var{filename} $B$K(B @var{obj} $B$r%P%$%J%j7A<0$G=q$-9~$`(B.
 \EG :: This function writes @var{obj} onto @var{filename} in binary form.  \EG :: This function writes @var{obj} onto @var{filename} in binary form.
 @item bsave("@var{filename}")  @item bload("@var{filename}")
 \JP :: @var{filename} $B$+$i?t<0$r%P%$%J%j7A<0$GFI$_9~$`(B.  \JP :: @var{filename} $B$+$i?t<0$r%P%$%J%j7A<0$GFI$_9~$`(B.
 \EG :: This function reads an expression from @var{filename} in binary form.  \EG :: This function reads an expression from @var{filename} in binary form.
 @end table  @end table
Line 421  y^2+2*x*y+x^2
Line 422  y^2+2*x*y+x^2
 @findex bload27  @findex bload27
   
 @table @t  @table @t
 @item xxx(@var{filename})  @item bload27("@var{filename}")
 \JP :: $B5lHG$G:n$i$l$?(B bsave file $B$NFI$_9~$_(B  \JP :: $B5lHG$G:n$i$l$?(B bsave file $B$NFI$_9~$_(B
 \EG :: Reads bsaved file created by older version of @b{Asir}.  \EG :: Reads bsaved file created by older version of @b{Asir}.
 @end table  @end table
Line 531  convenient to minimize programming efforts.
Line 532  convenient to minimize programming efforts.
 xyz123gahaha  xyz123gahaha
 @end example  @end example
   
   \JP @node open_file close_file get_line get_byte put_byte purge_stdin,,, $BF~=PNO(B
   \EG @node open_file close_file get_line get_byte put_byte purge_stdin,,, Inputs and Outputs
   @subsection @code{open_file}, @code{close_file}, @code{get_line}, @code{get_byte}, @code{put_byte}, @code{purge_stdin}
   @findex open_file
   @findex close_file
   @findex get_line
   @findex get_byte
   @findex put_byte
   @findex purge_stdin
   
   @table @t
   @item open_file("@var{filename}"[,"@var{mode}"])
   \JP :: @var{filename} $B$r%*!<%W%s$9$k(B.
   \EG :: Opens @var{filename} for reading.
   @item close_file(@var{num})
   \JP :: $B<1JL;R(B @var{num} $B$N%U%!%$%k$r%/%m!<%:$9$k(B.
   \EG :: Closes the file indicated by a descriptor @var{num}.
   @item get_line([@var{num}])
   \JP :: $B<1JL;R(B @var{num} $B$N%U%!%$%k$+$i(B 1 $B9TFI$`(B.
   \EG :: Reads a line from the file indicated by a descriptor @var{num}.
   @item get_byte(@var{num})
   \JP :: $B<1JL;R(B @var{num} $B$N%U%!%$%k$+$i(B 1 $B%P%$%HFI$`(B.
   \EG :: Reads a byte from the file indicated by a descriptor @var{num}.
   @item put_byte(@var{num})
   \JP :: $B<1JL;R(B @var{num} $B$N%U%!%$%k$K(B 1 $B%P%$%H=q$/(B.
   \EG :: Writes a byte to the file indicated by a descriptor @var{num}.
   @item purge_stdin()
   @item purge_stdin()
   \JP :: $BI8=`F~NO$N%P%C%U%!$r%/%j%"$9$k(B.
   \EG :: Clears the buffer for the standard input.
   @end table
   
   @table @var
   @item return
   \JP @code{open_file()} : $B@0?t(B ($B<1JL;R(B); @code{close_file()} : 1; @code{get_line()} : $BJ8;zNs(B; @code{get_byte()}, @code{put_byte()} : $B@0?t(B
   \EG @code{open_file()} : integer (fild id); @code{close_file()} : 1; @code{get_line()} : string; @code{get_byte()}, @code{put_byte()} : integer
   @item filename
   \JP $B%U%!%$%kL>(B ($B%Q%9L>(B)
   \EG file (path) name
   @item mode
   \JP $BJ8;zNs(B
   \EG string
   @item num
   \JP $BHsIi@0?t(B ($B%U%!%$%k<1JL;R(B)
   \EG non-negative integer (file descriptor)
   @end table
   
   @itemize @bullet
   \BJP
   @item @code{open_file()} $B$O%U%!%$%k$r%*!<%W%s$9$k(B. @var{mode} $B;XDj$,(B
   $B$J$$>l9gFI$_=P$7MQ(B, @var{mode} $B;XDj$,$"$k>l9g$K$O(B, C $B$NI8=`F~=PNO(B
   $B4X?t(B @code{fopen()} $B$KBP$9$k%b!<%I;XDj$H$_$J$9(B. $B$?$H$($P?75,=q$-9~$_(B
   $BMQ$N>l9g(B @code{"w"}, $BKvHxDI2C$N>l9g(B @code{"a"} $B$J$I(B.
   $B@.8y$7$?>l9g(B, $B%U%!%$%k<1JL;R$H$7$FHsIi@0?t$rJV$9(B. $B<:GT$N>l9g%(%i!<$H$J$k(B.
   $BITMW$K$J$C$?%U%!%$%k$O(B @code{close_file()} $B$G%/%m!<%:$9$k(B.
   @item @code{get_line()} $B$O8=:_%*!<%W%s$7$F$$$k%U%!%$%k$+$i(B 1 $B9TFI$_(B,
   $BJ8;zNs$H$7$FJV$9(B. $B0z?t$,$J$$>l9g(B, $BI8=`F~NO$+$i(B 1 $B9TFI$`(B.
   @item @code{get_byte()} $B$O8=:_%*!<%W%s$7$F$$$k%U%!%$%k$+$i(B 1 $B%P%$%HFI$_(B
   $B@0?t$H$7$FJV$9(B.
   @item @code{put_byte()} $B$O8=:_%*!<%W%s$7$F$$$k%U%!%$%k$K(B 1 $B%P%$%H=q$-(B,
   $B$=$N%P%$%H$r@0?t$H$7$FJV$9(B.
   @item $B%U%!%$%k$N=*$j$^$GFI$s$@8e$K(B @code{get_line()} $B$,8F$P$l$?>l9g(B,
   $B@0?t$N(B 0 $B$rJV$9(B.
   @item $BFI$_=P$7$?J8;zNs$O(B, $BI,MW$,$"$l$P(B @code{sub_str()} $B$J$I$NJ8;zNs=hM}(B
   $B4X?t$G2C9)$7$?$N$A(B @code{eval_str()} $B$K$h$jFbIt7A<0$KJQ49$G$-$k(B.
   @item @code{purge_stdin()} $B$O(B, $BI8=`F~NO%P%C%U%!$r6u$K$9$k(B.
   $B4X?tFb$G(B @code{get_line()} $B$K$h$jI8=`F~NO$+$iJ8;zNs$r<u$1<h$k>l9g(B,
   $B4{$K%P%C%U%!Fb$KB8:_$9$kJ8;zNs$K$h$k8mF0:n$rKI$0$?$a$K$"$i$+$8$a(B
   $B8F$S=P$9(B.
   \E
   \BEG
   @item @code{open_file()} opens a file.
   If @var{mode} is not specified, a file is opened for reading.
   If @var{mode} is specified, it is used as the mode specification for
   C standard I/O function @code{fopen()}. For example @code{"w"} requests
   that the file is truncated to zero length or created for writing.
   @code{"a"} requests that the file is opened for writing or created
   if it does not exist.
   The stream pointer is set at the end of the file.
   If successful, it returns a non-negative integer as the file descriptor.
   Otherwise the system error function is called.
   Unnecessary files should be closed by @code{close_file()}.
   @item @code{get_line()} reads a line from an opened file and returns the
   line as a string. If no argument is supplied, it reads a line from the
   standard input.
   @item @code{get_byte()} reads a byte from an opened file and returns the
   it as an integer.
   @item @code{put_byte()} writes a byte from an opened file and returns the
   the byte as an integer.
   @item A @code{get_line()} call after reading the end of file returns
   an integer 0.
   @item Strings can be converted into internal forms with string manipulation
   functions such as @code{sub_str()}, @code{eval_str()}.
   @item @code{purge_stdin()} clears the buffer for the standard input.
   When a function receives a character string from @code{get_line()},
   this functions should be called in advance in order to avoid
   an incorrect behavior which is caused by the characters already
   exists in the buffer.
   \E
   @end itemize
   
   @example
   [185] Id = open_file("test");
   0
   [186] get_line(Id);
   12345
   
   [187] get_line(Id);
   67890
   
   [188] get_line(Id);
   0
   [189] type(@@@@);
   0
   [190] close_file(Id);
   1
   [191] open_file("test");
   1
   [192] get_line(1);
   12345
   
   [193] get_byte(1);
   54                   /* the ASCII code of '6' */
   [194] get_line(1);
   7890                 /* the rest of the last line */
   [195] def test() @{ return get_line(); @}
   [196] def test1() @{ purge_stdin(); return get_line(); @}
   [197] test();
                        /* a remaining newline character has been read */
                        /* returns immediately */
   [198] test1();
   123;                 /* input from a keyboard */
   123;                 /* returned value */
   
   [199]
   
   @end example
   
   @table @t
   \JP @item $B;2>H(B
   \EG @item References
   @fref{eval_str}, @fref{str_len str_chr sub_str}.
   @end table

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.7

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>