If a file that is to be read contains characters which are not supported by the work file's character set then the file is not read in unless a substitute character has been defined which is then used. If the file contains an invalid byte sequence (possible in Unicode character sets) then the file is not read in.
Since EDT provides internal support for lines of up to 32768 characters, it is possible, when writing to DMS file or library elements, that a record may not be written because it is too long. In particular, when writing to a file which uses the UTF16
, UTFE
or UTF8
character set, this may occur in connection with significantly shorter lines if the work file record contains sufficient characters that are coded as 2-byte or 3-byte characters. This phenomenon can therefore easily occur in files with a fixed record length. If it is not possible to write a record because it is too long, EDT outputs the message EDT5444
and aborts the write operation. It is then the user's responsibility to shorten the lines accordingly or use another file format.
If when writing a file with fixed record length, a work file record is shorter than the file's record length, EDT fills the record with blanks up to the defined record length.
In the case of DMS files, the required file size is estimated before writing and, if possible, the required number of pages is assigned as the primary allocation in order to prevent the file from being split into a large number of different extents.
Once a DMS file has been closed after writing (statements @WRITE, @CLOSE, @SAVE), EDT usually releases the unneeded disk storage space. This space is not released if job switch 7 was set before writing or if the file name starts with a user ID.
When write operations are performed using the old statements (see chapter 9) – @WRITE (format 2) and @SAVE – this can also be achieved by assigning the file name a fixed predefined file link name and specifying the symbolic designation '/'
instead of the file name.