Working with Files and File Systems in Recital

From Recital Documentation Wiki
Jump to: navigation, search

Working with Files and File Systems in Recital

Handling Text Files in Recital

Recital includes functions allowing text files to be created, opened and closed and their contents to be read, overwritten or appended to.

Opening and Creating Text Files in Recital

  • fcreate() - create a new text file, returning a file handle
numeric = fcreate(<filename as character>)
  • fopen() - open an existing text file, returning a file handle
numeric = fopen(<filename as character> [, <mode as numeric>])
Mode Description
If not specified, read-only
0 Read-only
1 Write only. Existing contents are deleted.
2 Append. Text may be added to the end of the existing contents.

Closing Text Files in Recital

logical = fclose(<filehandle as numeric>)

Writing to a Text File using Recital

  • fputs() - write a character string to a text file, returning the number of bytes written
numeric = fputs(<filehandle as numeric>, <string as character> [, <bytes as numeric> [, <endofline as character>]])

Reading From a Text File using Recital

  • fgets() - read and return a line from a text file
character = fgets(<filehandle as numeric> [, <bytes as numeric> [, <endofline as character>]])
  • feof() - evaluate if the record pointer is at the end of file marker
logical = feof(<filehandle as numeric>)

Example

open database southwind
use example
fp=fcreate("names.txt")
count=0
do while not eof()
    count = count + fputs(fp,trim(last_name) + ", "+trim(first_name))
    skip
enddo
fclose(fp)
echo str(count,5) + " bytes written.\n"
 
fp = fopen("names.txt")
count = 0
do while not feof(fp)
    if left(fgets(fp),5) = "Smith"
        ++count
    endif
enddo
fclose(fp)
echo str(count,5) + " Smiths found.\n"
close databases

Checking Whether a File Exists in Recital

  • file() - check whether a file exists
logical = file(<filename as character>)

Moving, Copying and Deleting Files with Recital

rename <sourcefile as character> [to] <targetfile as character>
copy file <sourcefile as character> [to] <targetfile as character>
  • erase - delete a file or files
erase <filename as character [, filename as character [, ...]]>
delete file <filename as character>

Accessing File Attributes in Recital

  • fileinfo() - return a comma-separated string containing information about a file
character = fileinfo(<filename as character>)
  • fsize() - return the size of a file
numeric = fsize(<filename as character>)
  • fdate() - return the last modification date of a file
date = fdate(<filename as character>)
  • ftime() - return the last modification time of a file
character = ftime(<filename as character>)
character = fullpath(<filename as character>)
character = basename(<filename as character>)

Miscellaneous File and File System Commands and Functions

  • diskspace() - return the available space on the current disk
numeric = diskspace()