File api SCOL » History » Revision 2
Revision 1 (iri, 12/17/2011 09:13 PM) → Revision 2/3 (iri, 12/17/2011 09:14 PM)
h1. File api SCOL
"http://www.scolring.org/files/doc_html/file_system.html":http://www.scolring.org/files/doc_html/file_system.html
+Files must be relative at the active Scol partition+.
There is not the close file function, Scol manage any I/O.
*To open a file :*
Read only :
_checkpack = fun [S] P
Write only :
_getmodifypack = fun [S] W
*To read a file :*
_getpack = fun [P] S
<pre>
fun main ()=
_showconsole;
let _checkpack "myFolder/myFile.ext" -> pFile in
if pFile == nil then
_fooS "This file doesn't exist"
else
_fooS _getpack pFile;
0;;
</pre>
To get the content line by line :
<pre>
fun displayLines (list)=
if list == empty then
0
else
let hd list -> line in
(
_fooS line;
displayLines tl list
);;
fun main ()=
_showconsole;
let _checkpack "myFolder/myFile.ext" -> pFile in
if pFile == nil then
(
_fooS "This file doesn't exist";
1
)
else
displayLines lineextr _getpack pFile;;
</pre>
If you want the content word by word, you can do something similar with _strextr_ instead of _lineextr_.
To get the size :
_fileSize = fun [P] I
<pre>
fun main ()=
_showconsole;
let _checkpack "myFolder/myFile.ext" -> pFile in
_fooId
if pFile == nil then
nil
else
_fileSize pFile;
0;;
</pre>
*To write in a file :*
_createpack = fun [S W] I
_appendpack = fun [S W] I
_storepack = fun [S S] I
<pre>
fun main ()=
_showconsole;
let _getmodifypack "anyFolder/anyFile.ext" -> wFile in
if 0 == _createpack "Bob and Alice " wFile then
if 0 == _appendpack "are married !" wFile then
_fooS "Done !"
else
_fooS "_appendpack : error"
else
_fooS "_createpack : error";
0;;
</pre>
Author : iri
Date : december 2011
*Return to [[Examples]]*