FREAD$

Syntax FREAD$ ([#ch], length)
Location BTool

The FREAD$ function is very similar to the FREAD command: A fixed number of characters is read from a channel (default #0) and returned as a string. FREAD$ does not stop with an error if the end of file is reached - you have to detect this by testing if the length of the returned string is really length.

Example

MYCOPY copies a file with flexible buffering up to 32k, eg. type:

MYCOPY "mycopy_bas" TO "ram2_whatever_dat", 1000

to use a 1000 bytes buffer. The larger the buffer, the faster the file is copied; try a one byte buffer to see the difference! Ok, here is the listing:

100 DEFine PROCedure MYCOPY (file1$, file2$, bufsiz%)
110   LOCal ch1, ch2, buffer$
120   ch1 = FOP_IN(file1$)
130   ch2 = FOP_NEW(file2$)
140   REPeat copying
150     buffer$ = FREAD$(#ch1, bufsiz%)
160     PRINT#ch2,buffer$;
170     IF LEN(buffer$) < bufsiz% THEN EXIT copying
180   END REPeat copying
190   CLOSE #ch1, #ch2
200 END DEFine MYCOPY

CROSS-REFERENCE

INPUT$, FWRITE$, COPY, GET_BYTE$