function

read . files . sncode

VERSIONlatest Read a file.

READ

NAME

read - Reads a file.

SYNOPSIS

read([error:variable,]textfile:binaryfile:file:compilefile:"file", …);

DESCRIPTION

This function is used to read files. Cannot read PDF file.

If the "textfile" parameter is used with a file, thaen the file is read.

If the "binaryfile" parameter is used with a file, then the file is assumed to be a compiled extenso file. The file is executed and the result is returned.

If the "compilefile" parameter is used with a file, then the file is assumed to be a source extenso file. The file is compiled, executed and the result is returned.

If the "file" parameter is used with a file, or if only a file name is given, then there are 3 possibilities:

  • If the file extension is snc, the file is assumed to be a compiled extenso binary file. The file is executed and the result is returned.
  • If the file extension is sn, the file is assumed to be a source extenso file. The file is compile, executed and the result is returned.
  • All other extensions are read.

If the "error" parameter is used, errors will be stored in this variable. Error variables will contain:

{
        "errmsg":"Errcode=14 Can't open text file: ..."
        "filename":"/usr/local/website/v5/html/tests/test.sn",
        "cfile":"files.c",
        "errcode":14,
        "filefrom":"/usr/local/website/v5/html/tests/test.sn",
        "line":4,"error":"Can't open text file: /usr/local/website/v5/html/tests/areiuhgiwuerhgiew: No such file or directory",
        "cline":2622,
        "compileuid":0,
        "date":"2014-03-26 11:36:12"
}.

If there is no error, errcode will be zero.

EXAMPLES

Note: In the followings examples, the _ between the { should be removed to make it work.

res={_{ read("/xyxyx"); }}. return .*No such file or directory.*

res={_{ void generate(compile:true,file:"/tests/test-read-generate.snc",template:"/tests/test-read-generate.sn");
        a=read("/tests/test-read-generate.snc"); a; }}. return res=res from sample = 512 11.
code later:
This will be executed later11.
.

res={_{ a=read("/tests/test-read-generate.snc"); a; }}. return res=res from sample = 512 11.
code later:
This will be executed later11.
.

res={_{ a=read(binaryfile:"/tests/test-read-generate.snc"); a; }}. return res=res from sample = 512 11.
code later:
This will be executed later11.
.

res={_{ a=read("/tests/sample.sn"); a; UWRITE;}}. return res=res from sample = 512 11.undefined.

res={_{ a=read(compilefile:"/tests/sample.sn"); a; UWRITE;}}. return res=res from sample = 512 11.undefined.

res={_{ a=read("/tests/testread",textfile:"/includes/extenso.sn"); a =~ "GWRITE"; a=~"multiline";}}. return res=truetrue.

res={_{ a=read("/tests/testread",textfile:"/includes/extenso.sn"); a =~ "GWRITE"; a =~[i] "Multiline";}}. return res=truetrue.

res={_{ a=read("/tests/testread",textfile:"/includes/extenso.sn"); a =~ "GWRITE"; a =~"Multiline";}}. return res=truefalse.

res={_{ a=read("/tests/testread",textfile:"/includes/extenso.sn"); a =~ "GWRITE"; a !~"Multiline";}}. return res=truetrue.

res={_{ a=read("/tests/testread",textfile:"/includes/extenso.sn"); a =~ "GWRITE"; a !~[i]"Multiline";}}. return res=truefalse.

res={_{ a=read("/tests/testread",textfile:"/includes/extenso.sn"); a =~[xi]"
        # Match the keywork Multiline
        Multiline";}}. return res=true.

AUTHOR

Written by Pierre Laplante and Caroline Laplante, <laplante@sednove.com>