#### D.2.9 Formats

 Formats ⇒ int[n-widths] int*[n-widths] string[encoding] int[current-layer] bool[digit-grouping] bool[leading-zero] bool int[epoch] byte[decimal] byte[grouping] CustomCurrency count( v1(X0?) v3(count(X1 count(X2)) count(X3)) X0 ⇒ byte*14 string[command] string[command-local] string[language] string[charset] string[locale] bool 00 bool bool int[epoch] byte[decimal] byte[grouping] CustomCurrency byte[missing] bool X1 ⇒ byte*2 byte[lang] byte[variable-mode] byte[value-mode] int*2 00*17 bool 01 X2 ⇒ int[n-heights] int*[n-heights] int[n-style-map] BlankMap*[n-style-map] int[n-styles] StylePair*[n-styles] count((i0 i0)?) StyleMap ⇒ int64[cell-index] int16[style-index] X3 ⇒ 01 00 (03 | 04) 00 00 00 string[command] string[command-local] string[language] string[charset] string[locale] bool 00 bool bool int[epoch] byte[decimal] byte[grouping] double[small] 01 (string[dataset] string[datafile] i0 int[date] i0)? CustomCurrency byte[missing] bool (i2000000 i0)? CustomCurrency ⇒ int[n-ccs] string*[n-ccs] 

If n-widths is nonzero, then the accompanying integers are column widths as manually adjusted by the user. (Row heights are computed automatically based on the widths.)

encoding is a character encoding, usually a Windows code page such as en_US.windows-1252 or it_IT.windows-1252. The rest of the character strings in the member use this encoding. The encoding string is itself encoded in US-ASCII.

epoch is the year that starts the epoch. A 2-digit year is interpreted as belonging to the 100 years beginning at the epoch. The default epoch year is 69 years prior to the current year; thus, in 2017 this field by default contains 1948. In the corpus, epoch ranges from 1943 to 1948, plus some contain -1.

decimal is the decimal point character. The observed values are ‘.’ and ‘,’.

grouping is the grouping character. Usually, it is ‘,’ if decimal is ‘.’, and vice versa. Other observed values are ‘'’ (apostrophe), ‘ ’ (space), and zero (presumably indicating that digits should not be grouped).

command describes the statistical procedure that generated the output, in English. It is not necessarily the literal syntax name of the procedure: for example, NPAR TESTS becomes “Nonparametric Tests.” command-local is the procedure’s name, translated into the output language; it is often empty and, when it is not, sometimes the same as command.

dataset is the name of the dataset analyzed to produce the output, e.g. DataSet1, and datafile the name of the file it was read from, e.g. C:\Users\foo\bar.sav. The latter is sometimes the empty string.

date is a date, as seconds since the epoch, i.e. since January 1, 1970. Pivot tables within an SPV files often have dates a few minutes apart, so this is probably a creation date for the tables rather than for the file.

Sometimes dataset, datafile, and date are present and other times they are absent. The reader can distinguish by assuming that they are present and then checking whether the presumptive dataset contains a null byte (a valid string never will).

n-ccs is observed as either 0 or 5. When it is 5, the following strings are CCA through CCE format strings. See Custom Currency Formats in PSPP. Most commonly these are all -,,, but other strings occur.

missing is the character used to indicate that a cell contains a missing value. It is always observed as ‘.’.