DIRECT FILE ACCES COMMANDS - DISK(FILE) VARIABLES
=================================================
General syntax is: <operation>$<variable>
<operation> can be put, close, \T
<variable> general syntax is:
variable[,pos[,length]] (no spacers are allowed like in
schema-variable name;)
if pos or length are variables, then
leading $-character in pos or length must be omitted;
"variable or not" is recognized by the first char
in the word pos or length;
f.e: "\T$dvar" - takes 1 character from current position
"\T$dvar,where," - takes 1 character from $where position;
"\T$dvar,,2" - takes 2 characters from current position;
in other words: pos has precedence before len,
and empty parameter invokes defaults,
but not $token;
..[r|w]open$variable.file_name
- open file_name and name it as "variable" for
r - read,
w - write, or
both
..put$variable[,pos[,length]]."value"
- put "value" into file <variable> from position pos;
- if none of pos, len parameters is submitted, then
"value" is put from the current file cursor position;
..close$variable
- close file <variable>;
closing removes <variable> name from existing disk variables;
closing non-opened variable generates exception with
possible text processing termination;
..olen$variable[,assignee]
length of open file corresponding to "variable"
will be assigned to "assignee" or to token if
"assignee" is empty;
in string:
"....\T$variable[,[pos][,len]]<spacer>.... "
- retrieve value of file <variable> from
position pos, with length len
- if none of parameters pos and len is submitted, then
single character from current file cursor position
is retrieved;
- note: there is no spacer between $variable and first comma;
NOTE: 1. <pos> and <len> can be variable names themselves:
f.e.: \G$my_file,$pos_x,$len_y ...
2. pos counted from 1;
3. opening already opened disk-valiable with the new file name
closes opened file and opens file with the new name;
4. disk-variables have own name space:
no intersection with varibles name space;
5. - for disk-variables opened for write (wopen),
"no_change_outside_result" is in effect,
- option "open" does not have "scope" protection,
"open" command must be used with care;