In revision 7 in version 7 I correct the use of temporary$ when a user wants to write there.
About Users
We can make users easy, using a CLI command USER (this command is not for modules)
at prompt > we write
>USER peter
Now the screen write the title M2000 Environment
The interpreter version
The operating system name
The user name: PETER
internal a in windows user files and under M2000_users folder a new folder created if not exist, and this is the user folder. Any time we can return to that folder with DIR USER
>DIR USER
we can make sub folders or just select them if already exist
>SUBDIR thistoo
>DIR

we get only the name, no files GSB (set of modules and CLI commands) or folders
>DIR ..
we go up
>DIR
we see that a directory thistoo exist
>DIR thistoo
we select thistoo.
>SUBDIR deepone
>DIR

we see the path thistoo\deepone
>DIR user
we return to user folder
>DIR thistoo\deepone
we select in one command the desired path...but this path is "fake"...because a part is hidden, and that part have the \PETER\ at the right.
>? DIR$
thistoo\deepone\
>DIR USER
Now we are in user dierctory so what DIR$ show to us?
>? DIR$
.

We get a point. Why? Because this is useful
>DIR DIR$+"thistoo\deepone"
we going to thistoo\deepone and is the same as this
>DIR ".thistoo\deepone"
dot . make the path absolute path, when processed inside M2000.
So the idea is to make same programs that can run for different users, in user folder, and let the user to make changes. We learn as we change the code.


For temporary files we can use temporary$ as the path for files. This can be used for any User
>edit testme
and copy this code
Code:
Report 2, "you make a temporary UTF-16 file"
text utf-16 this.txt {alfa
beta
gama
}
L=1
open temporary$+"this.txt" for wide input as L
seek #L, 3  ' for UTF id number
while not eof(l) {
line input  #L, a$
print a$
}
close #L
Report 2, "you make a temporary ANSI file"
text this.txt {alfa
beta
gama
}
L=1
open temporary$+"this.txt" for input as L
while not eof(l) {
line input  #L, a$
print a$
}
close #L
Report 2, "you make a temporary UTF-8 file"
text UTF-8 this.txt {alfa
beta
gama
}
Document Doc$
'Load.doc handle any type of text file Utf-8 Utf-16 and ansi
Load.doc Doc$, temporary$ + "this.txt"
' use a fast Report Doc$
' or print each line
' by odrer number
for i=1 to doc.par(Doc$) {
      print paragraph$(doc$, i)
}

' Or we can use 
Report 2,  "Using forward cursor to read Doc"
LONG DocCursor
' we can use a double or an integer (a big integer)
' a big integer has a % char at the end
check=forward(Doc$, DocCursor)
' check is true if Doc$ is NOT empty, here is not used
while DocCursor>0 {
      print paragraph$(doc$, (DocCursor))
}
now press esc and run it with
>testme