FREAD

Syntax

FREAD (#ch,address,bytes)

Location

TinyToolkit

The function FREAD reads a number of bytes (bytes) from a given channel into memory, starting at address. The number returned by FREAD gives the number of bytes it actually read.

Example

A BASIC Procedure APPEND which adds a file (file1$) to the end of a target file (file2$). If the target file does not exist, it will be created.

The first file will be erased (remove line 220 if you do not want this). The third parameter allows you to determine the working space of the procedure; the larger this space, the quicker the execution:

100 DEFine PROCedure APPEND (file1$,file2$,bufsize)
110   LOCal length,buffer,file1,file2,part
120   file1=FOP_IN(file1$): length=FLEN(#file1)
130   buffer=ALCHP(length)
140   file2=FOPEN(file2$)
150   IF file2=-7 THEN file2=FOP_NEW(file2$)
160   GET #file2 \1E9
170   FOR part=0 TO INT(length/bufsize)
180     bufsize=FREAD(#file1,buffer,bufsize)
190     FWRITE #file2,buffer,bufsize
200   END FOR part
210   CLOSE #file1, #file2: RECHP buffer
220   DELETE file1$
230 END DEFine APPEND

It can be called as follows:

APPEND "ram1_tumb_tmp" TO "flp2_tump_dat",20480

NOTE

If the channel number supplied to FREAD does not refer to a file, then the error -15 (bad parameter) will be reported after it has done its work. This behaviour is pretty strange.

CROSS-REFERENCE

FREAD$, FWRITE, LBYTES, SBYTES, GET, PUT.