File Manipulation
FileAppend | Appends data to a file |
StrFile | Writes a string to a file starting at a specified position |
FileStr | Reads a portion of a file into a string |
FileAppend | Appends data to a file |
StrFile | Writes a string to a file starting at a specified position |
FileStr | Reads a portion of a file into a string |
FILEAPPEND() Appends data to a file Syntax FILEAPPEND(<cSourceFile>, <cTargetFile>) --> nAttachedByte Arguments <cSourceFile> Designates the file that is appended to <cTargetFile>. <cTargetFile> Designates the file to which <cSource> is appended. Drive and path designation are permitted for both files, wildcards are not. Returns FILEAPPEND() returns the number of characters appended on to <cTargetFile>. Description FILEAPPEND() takes fragmented files, split them up on different floppies and reassemble them. This sort of fragmented file could be created with the FILECOPY() system described in this chapter. You only need explicit information, such as VOLUME labels, to recognize the different disks. If the target file does not exist, it is created with FILEAPPEND(). If an error occurs while appending to the target file, the file deletes completely to avoid accidental and incorrect results. Never append data to file if there is no backup copy. Notes . Use SETFCREATE(), if FILEAPPEND() creates a new file and an alternative attribute needs to be specified. . Use SETSHARE() to protect a target file from access, if it is on a network drive. Examples Shown below is a simplified program to reassemble a file that is divided among several disks by a FILECOPY() backup. A catalog contains a list of the disks used during backup in the form of volume labels and backup file names. Structure of the DISKLIST catalog: Table 7-10: DISKLIST File Structure ------------------------------------------------------------------------ Field Name Field Content ------------------------------------------------------------------------ VolLabel Back up disk drive and volume label BackupName Back up file name, incl. drive and path ------------------------------------------------------------------------ The data in DISKLIST is created by a FILECOPY() backup: USE DISKLIST // Saved volume labels cTargetFile := "C:\TARGET.TXT" DO WHILE .NOT. EOF() IF .NOT. EMPTY(FILESEEK(cVolLabel, 8) // Correct disk ? FILEAPPEND(cBackupName, cTargetFile) // Yes, append data SKIP ELSE ? "Please insert the correct disk !" ENDIF ENDDO
See Also: FILECOPY() FILESEEK() SETSHARE() SETFCREATE() CSETSAFETY()
Introduction Disk Utilities DELETEFILE() Deletes an error-tolerant file DIRCHANGE() Changes the current directory DIRMAKE() Creates a directory DIRNAME() Determines the name of the current directory DIRREMOVE() Removes a directory DISKCHANGE() Changes the current disk drive DISKCHECK() Creates a checksum for a disk DISKFORMAT() Formats disks, controlled through a UDF DISKFREE() Determines the space available on a floppy or hard disk DISKNAME() Determines the drive designator for the current drive DISKREADY() Tests to see if a disk drive is ready DISKREADYW() Queries whether you can write to a drive DISKSPEED() Determines a comparison value for the drive speed DISKSTAT() Determines the status of a drive. DISKTOTAL() Determines the total capacity of a floppy or hard disk DISKTYPE() Determines the type of data carrier DRIVETYPE() Determines the drive type FILEAPPEND() Appends data to a file FILEATTR() Determines a file's attributes FILECCLOSE() Closes a file after backup mode FILECCONT() Copies sections of a file in backup mode FILECDATI() Determines which date the target file contains with FILECOPY() FILECHECK() Calculates/computes/determines a checksum for a file FILECOPEN() Tests to see if the file is still open in the backup mode FILECOPY() Copies files normally or in backup mode FILEDATE() Determines the file date FILEDELETE() Deletes file(s) by name and attribute FILEMOVE() Moves files to another directory FILESEEK() Searches for files by name and attribute FILESIZE() Determines the size of a file FILESTR() Reads a portion of a file into a string FILETIME() Determines a file's time FILEVALID() Tests whether a string has a valid file name FLOPPYTYPE() Determines the exact type of floppy drive GETSHARE() Determines the file open (share) mode NUMDISKF() Determines the number of installed disk drives NUMDISKH() Determines the number of hard disks NUMDISKL() Determines the number of available logical drives RENAMEFILE() Fault tolerant renaming of a file. RESTFSEEK() Restores the FILESEEK environment SAVEFSEEK() Saves the current FILESEEK environment SETFATTR() Sets a file's attributes SETFCREATE() Default attribute for creating with CA-Clipper Tools functions SETFDATI() Sets the date and time of a file SETSHARE() Sets default opening mode for CA-Clipper Tools file functions STRFILE() Writes a string to a file TEMPFILE() Creates a file for temporary use TRUENAME() Standardizes the path designation VOLSERIAL() Determines the DOS disk serial number VOLUME() Establishes a volume label for a floppy or hard disk