A STRING file is simply a sequence of bytes. Usually, a STRING file is the native file mode provided by the host system. The bytes in a STRING file are numbered starting with zero. The bytes may be accessed at any position for as many bytes as exist from that position to the end of the file. On most systems, a STRING file may be extended to an arbitrary length. There is no concept of records in a STRING file. The program may read and write any block of data starting at any byte within the file. A STRING file may grow dynamically as new data is written to it. Any file that is not specifically created by PRO/5, and is not otherwise recognized by PRO/5, is a STRING file.

STRING and other FILE verbs use traditional BBx searching before they create the file, so if the file exists in a directory on the PREFIX list, creating a file returns an !ERROR=12. While BBx allows the use of a operating system specific capabilities such as O_CREATE, the results are varied.

The READ verb is useful for reading ASCII files since it is sensitive to carriage returns and linefeeds. The READ RECORD statement is useful for accessing binary files of other applications (e.g., a spreadsheet) since it provides raw data transfer. STRING files may be created with the STRING verb.

The most common usage of the STRING file is an interface to files other than those PRO/5 recognizes directly; any file that does not contain the PRO/5 file header is considered a STRING file. This includes any STRING file that PRO/5 creates itself.

The EXTRACT verb does not lock the read data from other user accesses.

PRO/5 can handle a STRING file of up to (2^31)-1 bytes.

The FIN() of a STRING file contains no information specific to STRING files.

See Also