dcf
Read and Write Data in DCF Format

### Description

Reads from or writes to a file in the Debian Control File format.

### Usage

    read.dcf(file, fields = NULL, all = FALSE, keep.white = NULL, overrideSuffix = "TERR")
    write.dcf(x, file = "", append = FALSE,
        indent = 0.1 * getOption("width"),
        width = 0.9 * getOption("width"))

### Arguments

file | either a character string naming a file or a connection object.
fields | the fields to read. By default, reads all fields.
all | a logical value. If TRUE, all occurrences of a field with the same name in a record are returned. If FALSE (the default), only the last occurrence of a field with a given name is returned.
keep.white | A character vector (or NULL) giving the names of fields from which leading and trailing whitespace characters should not be removed, so the original formatting is retained.
overrideSuffix | A character string or NULL to be used when the value of an entry in a dcf file depends on whether you are using open source R or Spotfire Enterprise Runtime for R, originally abbreviated TERR. If not NULL, then this suffix is removed from all tags in the DCF file that end with overrideSuffix. Hence, tags identical except for the presence of a trailing overrideSuffix are considered identical. When all is FALSE the last of a set of identically tagged lines is taken as the value of the tag so if you place the line TagTERR: Value for use with Spotfire Enterprise Runtime for R after Tag: value then Tag will have the value "Value for use with Spotfire Enterprise Runtime for R" in Spotfire Enterprise Runtime for R and "value" in R.
x | the object to write. If it is not a data.frame object, it is coerced to be a data.frame object with x <- data.frame(x, stringsAsFactors=FALSE).
append | a logical value. If FALSE (the default), the contents of the existing file are deleted and the output overwrites the file. If TRUE, the output is appended to the file. If you want to append a new record to the file, you must add the separating empty line with a command such as cat(file=file, append=TRUE, "\n") between calls to write.dcf.
indent | a nonnegative integer value. If the output for write.dcf exceeds the line width restriction specified by width, indent specifies the number of spaces to indent additional text on subsequent lines. (indent is passed to strwrap).
width | a positive integer specifying the target column for wrapping lines in the output (width is passed to strwrap).

### Details

The DCF format stores the contents of databases as plain text files for easy reading. We use DCF to store system information (for example, descriptions, contents of packages, and so on).
read.dcf and write.dcf use the following rules for DCF files:

- A database consists of one or more records, each with one or more named fields. Not every record must contain each field. A field should appear only once in a record, although the all=TRUE option lets one read a file with duplicate fields. See Value for more information.
- Regular lines are of form tag:value with no whitespace (space or tab) before the tag. Whitespace before or after the value is removed. The value can be empty.
- Lines starting with whitespace are read as continuation lines (of the preceding field) if at least one character in the line is non-whitespace. If a continuation line's only non-whitespace character is a period (.), then this line is displayed as an empty line in Spotfire Enterprise Runtime for R (stored as two adjacent newlines).
- Records are separated by one or more empty lines.
- The write.dcf does not write NA fields.

Value

read.dcf | if all is FALSE, returns a character matrix with one column per unique field name and one row per record. The columns are named for the fields; the rows are unnamed. If a field in the file contains multiple lines, such entries are read in with newlines where line breaks in the original field were. If a field is not present for a record in the file, an entry for a that field name is set to NA_character_. if all is TRUE, returns a data.frame with the same row and column structure as that returned when all is FALSE. All columns are character vectors unless a given field in a record contains a duplicate entry, in which case that column is a list of character strings.
write.dcf | always returns the value NULL.

See Also
packageDescription
Examples

    # Make and read a DCF file with 2 records
    x <- data.frame(
            Package=c("myPkg", "yourPkg"),
            Version=c("1.2-3", "2.1"),
            Description=c("A two 'paragraph`\n\ndescription of myPkg",
                          "yourPkg is useful"))
    dcfFile <- file.path(tempdir(), "dcf.txt")
    write.dcf(x, file=dcfFile)
    cat(sep="\n", readLines(dcfFile))
    read.dcf(dcfFile)
    unlink(dcfFile)

Package base version 6.1.5-18
Package Index