| version 1.3, 2000/03/02 07:46:14 |
version 1.5, 2000/11/13 00:16:36 |
|
|
| @comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/io.texi,v 1.2 1999/12/21 02:47:33 noro Exp $ |
@comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/io.texi,v 1.4 2000/04/28 08:12:01 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 |
|
|
| * bsave bload:: |
* bsave bload:: |
| * bload27:: |
* bload27:: |
| * print:: |
* print:: |
| * open_file close_file get_line:: |
* open_file close_file get_line get_byte purge_stdin:: |
| @end menu |
@end menu |
| |
|
| \JP @node end quit,,, $BF~=PNO(B |
\JP @node end quit,,, $BF~=PNO(B |
|
|
| @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 |
|
|
| @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 532 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,,, $BF~=PNO(B |
\JP @node open_file close_file get_line get_byte purge_stdin,,, $BF~=PNO(B |
| \EG @node open_file close_file get_line,,, Inputs and Outputs |
\EG @node open_file close_file get_line get_byte purge_stdin,,, Inputs and Outputs |
| @subsection @code{open_file}, @code{close_file}, @code{get_line} |
@subsection @code{open_file}, @code{close_file}, @code{get_line}, @code{get_byte}, @code{purge_stdin} |
| @findex open_file |
@findex open_file |
| @findex close_file |
@findex close_file |
| @findex get_line |
@findex get_line |
| |
@findex get_byte |
| |
@findex purge_stdin |
| |
|
| @table @t |
@table @t |
| @item open_file("@var{filename}") |
@item open_file("@var{filename}") |
|
|
| @item close_file(@var{num}) |
@item close_file(@var{num}) |
| \JP :: $B<1JL;R(B @var{num} $B$N%U%!%$%k$r%/%m!<%:$9$k(B. |
\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}. |
\EG :: Closes the file indicated by a descriptor @var{num}. |
| @item get_line(@var{num}) |
@item get_line([@var{num}]) |
| \JP :: $B<1JL;R(B @var{num} $B$N%U%!%$%k$+$i(B 1 $B9TFI$`(B. |
\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}. |
\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 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 |
@end table |
| |
|
| @table @var |
@table @var |
| @item return |
@item return |
| \JP @code{open_file()} : $B@0?t(B ($B<1JL;R(B); @code{close_file()} : 1; @code{get_line()} : $BJ8;zNs(B |
\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()} : $B@0?t(B |
| \EG @code{open_file()} : integer (fild id); @code{close_file()} : 1; @code{get_line()} : string |
\EG @code{open_file()} : integer (fild id); @code{close_file()} : 1; @code{get_line()} : string, @code{get_byte()} : integer |
| @item filename |
@item filename |
| \JP $B%U%!%$%kL>(B ($B%Q%9L>(B) |
\JP $B%U%!%$%kL>(B ($B%Q%9L>(B) |
| \EG file (path) name |
\EG file (path) name |
|
|
| $B>l9g(B, $B%U%!%$%k<1JL;R$H$7$FHsIi@0?t$rJV$9(B. $B<:GT$N>l9g%(%i!<$H$J$k(B. |
$B>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. |
$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, |
@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. |
$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 $B%U%!%$%k$N=*$j$^$GFI$s$@8e$K(B @code{get_line()} $B$,8F$P$l$?>l9g(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. |
$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 |
@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. |
$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 |
\E |
| \BEG |
\BEG |
| @item @code{open_file()} opens a file for reading. |
@item @code{open_file()} opens a file for reading. |
| Line 581 If successful, it returns a non-negative integer as th |
|
| Line 595 If successful, it returns a non-negative integer as th |
|
| Otherwise the system error function is called. |
Otherwise the system error function is called. |
| Unnecessary files should be closed by @code{close_file()}. |
Unnecessary files should be closed by @code{close_file()}. |
| @item @code{get_line()} reads a line from an opened file and returns the |
@item @code{get_line()} reads a line from an opened file and returns the |
| line as a string. |
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 A @code{get_line()} call after reading the end of file returns |
@item A @code{get_line()} call after reading the end of file returns |
| an integer 0. |
an integer 0. |
| @item Strings can be converted into internal forms with string manipulation |
@item Strings can be converted into internal forms with string manipulation |
| functions such as @code{sub_str()}, @code{eval_str()}. |
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 |
\E |
| @end itemize |
@end itemize |
| |
|
| Line 602 functions such as @code{sub_str()}, @code{eval_str()}. |
|
| Line 624 functions such as @code{sub_str()}, @code{eval_str()}. |
|
| 0 |
0 |
| [189] type(@@@@); |
[189] type(@@@@); |
| 0 |
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 |
@end example |
| |
|
| @table @t |
@table @t |