| **Navigation:**  [[introduction.htm|Language Reference]] > 13 - Built-in Functions >====== APPEND (add a new file record) ====== | [[all return repeated characters .htm|{{btn_prev_n.gif|Previous page}}]][[introduction.htm|{{btn_home_n.gif|Return to chapter overview}}]][[arc draw an arc of an ellipse .htm|{{btn_next_n.gif|Next page}}]] | | || **APPEND(**//file// [,//length//]**)** {{blk2blue.jpg|blk2blue.jpg}} | **APPEND** | Writes a new record to a FILE. | | //file// | The label of a FILE declaration. | | //length// | An integer constant, variable, or expression which contains the number of bytes to write to the //file//. The //length// must be greater than zero and not greater than the length of the RECORD. If omitted or out of range, //length// defaults to the length of the RECORD structure. | The **APPEND** statement writes a new record from the RECORD structure data buffer to the data file. No KEYs associated with the //file// are updated during an APPEND. After APPENDing records, the KEYs must be rebuilt with the BUILD command. APPEND is usually used in batch processes, to speed the process of adding a large number of records at one time to the //file//. For most every file system, it is much faster to add 5000 records to a //file// using APPEND (and then issue BUILD atthe end of the process to rebuild all the keys at once) than it is to use ADD to add the same 5000 records (which automatically updates the keys with each new record added). If an error is posted, no record is added to the file. If there is no room for the record on disk, the "Access Denied" error is posted. **Errors Posted:** | 05 | Access Denied | | 37 | File Not Open | **Example:** **LOOP                      !Process an input file** ** NEXT(InFile)             !getting each record in turn** ** IF ERRORCODE()           !break loop on error** **  BREAK** ** END        ** ** Cus:Record = Inf:Record  !Copy the data to Customer file** ** ****APPEND****(Customer)         !and APPEND a customer record** ** IF ERRORCODE()           !check for errors** **  STOP(ERROR())** ** END** **END        ** **BUILD(Customer)           !Re-build Keys** **See Also:** [[build build keys and indexes .htm|BUILD]] [[add add an entry .htm|ADD]]