Exactly one NavRoot is always present Exactly one NavHead is present except for .spo files that are (mostly) empty, which have none The Nav* strings only appear once per file, as: ffff 0000 xxyy string Sometimes there is zero spacing between these. File begins with: (00 | 0[1234] i0) "SPSS Output Document" (i0? | i1 63) ffff 0000 "NavHead" # or any other "Nav*" 02 int32[x] int32[y] i24 int32[z] int32[w] int32[v] (i0 | i1 | i2 | i3 | i4) (i0| i1 | i2 | i3) ffff 0000 "DspSimpleText" 00 (i0 (i0 | i1) 00)? ffff 0000 ("IndexedCollection" | "DspString") and then with the IndexedCollection case: 00*14 ffff 0000 and the DspString case: 01 02 28 (00|05) 00 (00|01) often followed by a string DspString is the label of the object that is currently selected. The currently selected object is always the first in the file regardless of the output hierarchy and order The entire rec:NavPivot contents, minus the final 00 byte, appear later in the file to identify the selected object. However, the initial 02 02*8 can disappear into a "float 0.0" if there's a leading 80. Each object has a small negative number, e.g. 0xfffffe91 == -390. Objects: NavRoot: root output object NavLog: log object NavHead: heading with subobjects NavTreeViewItem: assocated with NavHead somehow NavTitle: title within a heading NavNote: notes table NavPivot: table The start of the file might be a version number x and y are either 0 or 2-3 byte values, e.g. 0x670b or 0x3b989. z is a 2-3 byte negative value, e.g. 0xffff8997 w is a 2-byte value or 0 v is a 2-byte negative value or 0 rtf: "Factor Analysis" 01 01 table 1 00 00 00 f9 00 00 00 "\rtf..." 00 18 00 00 00 00 00 00 00 de ff ff ff 18 00 00 00 00 00 00 00 28 00 00 00 28 00 00 00 18 04 00 00 ae 73 01 00 00 00 00 00 00 34 21 00 00 f8 2a 00 00 01 00 07 00 01 00 f6 04 00 00 f6 04 00 00 f6 04 00 00 f6 04 00 00 00 00 f0 00 00 00 00 00 01 00 "(Continued)" rtf2: "Factor Analysis" 01 01 table 1 00 00 00 da 00 00 00 "\rtf..." 00 ffff 0000 rtf3: ... 00 1f 80 02 00 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 06 02 00 00 28 fd ff ff 02 00 00 00 01 00 00 1456 01 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00-00 00 00 00 05 80 01 02 28 05 00 01 03 4c 6f 67- 07 80 00 02 00 00........................(....Log...... 3 01 00 00 00 01 00 00 00 03 80 00 00 00 00 00 00-00 00 00 00 05 80 01 02 28 05 00 01 03 4c 6f 67- 07 80 00 02 00 00........................(....Log...... 13 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00 00-00 00 00 05 80 01 02 28 05 00 00 00 08 53 50 53-53 20 4c 6f 67 07.......................(.....SPSS Log. 13 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00 00-00 00 00 07 80 01 02 28 05 00 00 00 08 53 50 53-53 20 4c 6f 67 09.......................(.....SPSS Log. 13 01 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00-00 00 00 00 05 80 01 02 28 05 00 01 08 53 50 53-53 20 4c 6f 67 07........................(....SPSS Log. notea.spo/Contents PVPrintManager: "PVPrintManager" 02 byte[x] 00 i2 (i0|i3) i1 00*7 sometimes 0000 ffff where x is between 0a and 2e regress, notea -------------- ffff 0000 "NavPivot" 02 fa 3c 00 00 3b 5a 01 00 18 00 00 00 b4 35 ff ff 7f 02 00 00 13 28 ff ff 02 00 00 00 01 00 00 00 notea: 02 00 00 00 00 00 00 00 00 18 00 00 00 93 f0 ff ff dc 03 00 00 cd ef ff ff 02 00 00 00 01 00 00 missing terminator! ffff 0000 "DspSimpleText" 00*10 ffff 0000 "DspString" 01 02 28 05 00 01 "Text Output" ffff 0000 "NavOleItem" 00 01 00 00 07 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 "Regression" 01 notea: 00 01 00 00 01 00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 01 01 f3 ff ffff 0000 "PTPivotController" 02 67 02 00 00 a1 0d 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 notea: 02 29 20 69 31 38 28 66 38 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 ffff 0000 "PVPivotView" 04 00 00 00 00 ffff 0000 "PMPivotModel" 03 ffff 0000 "NDimensional__DspCell" 00 03 00 00 00 ffff 0000 "IndexedCollection" 00 05 00 00 00 01 00 13 80 00 0b 00 00 00 01 00 13 80 00 02 00 00 00 01 00 ffff 0000 "DspCell" 00 03 80 00 00 00 00 00 00 00 00 00 00 ffff 0000 "DspNumber" NavTitle 02 00 00 00 00 00 00 00 00 18 00 00 00 03 .. .. .. 00 04 00 00 .. .. ff ff 02 00 00 00 01 00 00 80 02 80 01 02 28 05 00 01 80 01 02 28 05 00 01 ff 80 01 03 28 05 80 02 80 00 03 80 00 00 00 00 00 00 00 00 00 00 .. 80 01 .. .. .. .. DspNumber: 01 NDimensional__DspCell: 00 int32[ndims] IndexedCollection: 7+(9*ndims) bytes 00 0e 00 00 00 01 00 00 22 00 00 00 01 00 11 80 00 08 00 00 00 01 00 00 5c 00 00 00 01 00 13 80 00 5c 00 00 00 01 00 13 80 00 05 00 00 00 01 00 00 01 00 00 00 01 00 11 80 00 02 00 00 00 01 00 11 80 00 03 00 00 00 01 00 11 80 00 03 00 00 00 01 00 ^^ number of categories ---------------------------------------------------------------------- ab1.dump 3 dimensions, 92x92x5: NDimensional__DspCell 00 03 00 00 00 IndexedCollection 00 5c 00 00 00 01 00 13 80 00 5c 00 00 00 01 00 13 80 00 05 00 00 00 01 00 The cells are in order last dimension changes most quickly. ---------------------------------------------------------------------- ZMAW_zaj3.dump 4-dimensions, 1x2x3x3, 18 cells 16 80 -> next 4th dim 11 80 00 03 00 00 00 01 00 -> increment another dim ---------------------------------------------------------------------- rec:PMModelItemInfo .. .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Contents" 07 .. .. .. 55 80 .. 57 80 .. .. .. .. .. .. .. .. .. 07 .. 74 0e cell F40.2 "Output Created" .. .. .. .. 55 80 .. 57 80 .. 01 .. .. .. .. .. .. .. 08 .. 74 0e cell F40.2 "Comments" .. .. .. .. 55 80 .. 57 80 .. .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Input" 06 .. .. .. 55 80 .. 57 80 .. 02 .. .. .. .. .. .. .. 0a .. 74 0e cell F40.2 "Data" .. .. .. .. 55 80 .. 57 80 .. 03 .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Active Dataset" .. .. .. .. 55 80 .. 57 80 .. 04 .. .. .. .. .. .. .. 0e .. 74 0e cell F40.2 "Filter" .. .. .. .. 55 80 .. 57 80 .. 05 .. .. .. .. .. .. .. 11 .. 74 0e cell F40.2 "Weight" .. .. .. .. 55 80 .. 57 80 .. 06 .. .. .. .. .. .. .. 12 .. 74 0e cell F40.2 "Split File" .. .. .. .. 55 80 .. 57 80 .. 07 .. .. .. .. .. .. .. 13 .. 74 0e cell F40.2 "N of Rows in Working Data File" .. .. .. .. 55 80 .. 57 80 .. .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Missing Value Handling" 02 .. .. .. 55 80 .. 57 80 .. 08 .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Definition of Missing" .. .. .. .. 55 80 .. 57 80 .. 09 .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Cases Used" .. .. .. .. 55 80 .. 57 80 .. 0a .. .. .. .. .. .. .. 17 .. 74 0e cell F40.2 "Weight Handling" .. .. .. .. 55 80 .. 57 80 .. 0b .. .. .. .. .. .. .. 18 .. 74 0e cell F40.2 "Syntax" .. .. .. .. 55 80 .. 57 80 .. .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Resources" 03 .. .. .. 55 80 .. 57 80 .. 0c .. .. .. .. .. .. .. 1b .. 74 0e cell F40.2 "Elapsed Time" .. .. .. .. 55 80 .. 57 80 .. 0d .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Maximum Memory Required" .. .. .. .. 55 80 .. 57 80 .. 0e .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Processor Time" rec:PMModelItemInfo .. .. .. .. .. 01 .. .. .. ff ff ff ff cell F40.2 "score" 01 .. .. .. 86 80 .. 88 80 .. .. .. .. .. .. .. .. .. f4 0e 74 0e cell F40.2 "Valid" 09 .. .. .. 86 80 .. 88 80 .. .. .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19 "17..." .. .. .. .. 86 80 .. 88 80 .. 01 .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19 "22..." .. .. .. .. 86 80 .. 88 80 .. 02 .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19 "26..." .. .. .. .. 86 80 .. 88 80 .. 03 .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19 "29..." .. .. .. .. 86 80 .. 88 80 .. 04 .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19 "33..." .. .. .. .. 86 80 .. 88 80 .. 05 .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19 "37..." .. .. .. .. 86 80 .. 88 80 .. 06 .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19 "40..." .. .. .. .. 86 80 .. 88 80 .. 07 .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19 "48..." .. .. .. .. 86 80 .. 88 80 .. 08 .. .. .. .. .. .. .. f2 0e 74 0e cell F40.2 "Total" .. .. .. .. .. .. .. .. .. .. 09 .. .. .. 01 .. 90 .. 94 .. 98 .. 9c .. a0 .. a4 .. a8 .. ac .. b0 .. .. 09 .. .. .. .. .. .. .. .. .. 01 .. .. .. 02 .. .. .. 03 .. .. .. 04 .. .. .. 05 .. .. .. 06 .. .. .. 07 .. .. .. 08 .. .. .. 84 80 .. 86 80 .. 88 80 .. .. .. .. .. 01 .. .. .. eb 0e 74 0e cell F40.2 "Statistics" 04 .. .. .. 86 80 .. 88 80 .. .. .. .. .. .. .. .. .. dc 0e 74 0e cell F40.2 "Frequency" .. .. .. .. 86 80 .. 88 80 .. 01 .. .. .. .. .. .. .. e6 0e 74 0e cell F40.2 "Percent" .. .. .. .. 86 80 .. 88 80 .. 02 .. .. .. .. .. .. .. f5 0e 74 0e cell F40.2 "Valid Percent" .. .. .. .. 86 80 .. 88 80 .. 03 .. .. .. .. .. .. .. da 0e 74 0e cell F40.2 "Cumulative Percent" .. .. .. .. .. .. .. .. .. .. 04 .. .. .. 01 .. b9 .. bd .. c1 .. c5 .. .. 04 .. .. .. .. .. .. .. .. .. 01 .. .. .. 02 .. .. .. 03 .. .. .. .. .. .. .. .. 01 .. .. 11 .. .. .. .. .. .. .. .. .. 4b .. .. .. .. .. .. .. .. .. .. .. rec:PMModelItemInfo .. .. .. .. .. 01 .. .. .. 91 1a 74 0e cell F40.2 "Statistics" 05 .. .. .. ff 7f 69 78 02 80 .. ff 7f 6b 78 02 80 .. .. .. .. .. .. .. .. .. 98 1a 74 0e cell F40.2 "Pearson Correlation" .. .. .. .. ff 7f 69 78 02 80 .. ff 7f 6b 78 02 80 .. 01 .. .. .. .. .. .. .. 99 1a 74 0e cell F40.2 "Sig. (2-tailed)" .. .. .. .. ff 7f 69 78 02 80 .. ff 7f 6b 78 02 80 .. 02 .. .. .. .. .. .. .. 96 1a 74 0e cell F40.2 "Sum of Squares and Cross-products" .. .. .. .. ff 7f 69 78 02 80 .. ff 7f 6b 78 02 80 .. 03 .. .. .. .. .. .. .. 97 1a 74 0e cell F40.2 "Covariance" .. .. .. .. ff 7f 69 78 02 80 .. ff 7f 6b 78 02 80 .. 04 .. .. .. .. .. .. .. 94 1a 74 0e cell F40.2 "N" .. .. .. .. .. .. .. .. .. .. 05 .. .. .. 01 .. ff 7f 6f 78 02 .. ff 7f 73 78 02 .. ff 7f 77 78 02 .. ff 7f 7b 78 02 .. ff 7f 7f 78 02 .. .. 05 .. .. .. .. .. .. .. .. .. 01 .. .. .. 02 .. .. .. 03 .. .. .. 04 .. .. .. ff 7f 67 78 02 80 .. ff 7f 69 78 02 80 .. ff 7f 6b 78 02 80 .. .. .. .. .. 01 .. .. .. 90 1a 74 0e ..................ox....sx....wx....{x.....x...............................gx.....ix.....kx.............t. ff is a way to say that there's a 4-byte number instead of 1-byte? 01 01 ed ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 bc 02 00 00 00 00 00 00 00 00 00 22 41 72 69 61 6c 00 61 00 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 07 80 00 02 00 00 00 0a 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 01 01 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 01 00 00 00 00 00 00 00 00 00 22 43 6f 75 72 69 65 72 20 4e 65 77 00 72 00 20 00 4e 00 65 00 77 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 07 80 00 00 00 00 00 0f 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. 78 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. ef ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f2 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. bc 02 .. .. 01 .. .. .. .. .. .. 12 .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f2 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 80 .. 80 .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 record type 02 ============== 02 int16*4 int32*4 rec:NavLog 02 .. .. .. .. .. .. .. .. 18 .. .. .. .. .. .. .. b3 02 .. .. 30 f8 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogA" 07 80 .. 02 .. .. .. 0f .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0....... 18 .. .. .. 0e f8 ff ff b3 02 .. .. 3e f0 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogB" 07 80 .. 02 .. .. .. 13 .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0....... 18 .. .. .. 1c f0 ff ff 5f 02 .. .. 4c e8 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogC" 07 80 .. 02 .. .. .. 17 .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0....... 18 .. .. .. 2a e8 ff ff 5f 02 .. .. 5a e0 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogD" 07 80 .. 02 .. .. .. 1b .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0....... 18 .. .. .. 38 e0 ff ff 5f 02 .. .. 68 d8 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogE" 07 80 .. 02 .. .. .. 1f .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 02 .. 02 .. .. .. NavTreeViewItem: last bit is the number of children plus one, e.g. here it has 0x12+1 children: rec:NavTreeViewItem .. .. .. .. .. 02 .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. .. .. .. 18 .. .. .. .. .. .. .. de ff ff ff 18 .. .. .. .. .. .. .. 28 .. .. .. 28 .. .. .. cb 02 .. .. f0 86 .. .. .. .. .. .. .. f8 2a .. .. 34 21 .. .. 01 .. 0f .. 02 .. f6 04 .. .. f6 04 .. .. f6 04 .. .. f6 04 .. .. .. .. f0 .. .. .. 7c 02 01 .. ...............................................(...(.................*..4!..............................|... "(Continued)" 01 01 .. .. .. rtf 01 01 .. .. .. rtf .. 13 ..