User Tools

Site Tools


xb:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
xb:start [2006/05/13 19:59] fgmxb:start [2006/05/13 22:53] fgm
Line 3: Line 3:
   * Constant size = 1990 bytes (RBSIZ_FILE)   * Constant size = 1990 bytes (RBSIZ_FILE)
   * Offsets are 1-based, not 0-based   * Offsets are 1-based, not 0-based
 +  * Little-endian format
   * Rather good description at http://www.clicketyclick.dk/databases/xbase/format/frm.html up to the "data structures" part   * Rather good description at http://www.clicketyclick.dk/databases/xbase/format/frm.html up to the "data structures" part
   * Other info from the source of the public domain DBE package at http://www.the-oasis.net/ftpmaster.php3?content=ftputils.htm   * Other info from the source of the public domain DBE package at http://www.the-oasis.net/ftpmaster.php3?content=ftputils.htm
   * Differences noted with above reference   * Differences noted with above reference
     * Files start and end with "02 00". They don't end with the array of data structures     * Files start and end with "02 00". They don't end with the array of data structures
 +
 +
 +
 +===== Global structure =====
 +
 +  * 01-02 Version = 02 00
 +  * 03-04 Offset: RBOFF_EXPSIZE = 3, Size: 2, contents: d2 00 = 210 (DBE: nExpSize)
 +  * 05-114 Offset: RBOFF_LENGTHS = 5, Size: RBSIZ_LENGTHS = 110, contents: 55 expression length values (DBE: cLengths)
 +  * 115-224 Offset: RBOFF_OFFSETS = 115, Size: RBSIZ_OFFSETS = 110, contents: 55 expression offset values (DBE: cOffsets)
 +  * 225-1664 Offset: RBOFF_EXPRS = 225, Size: RBSIZ_EXPRS = 1440, contents: 55 expression values (DBE: cExprs)
 +  * 1665-1964 Offset: RBOFF_FIELDS = 1665, Size: RBOFF_SIZE = 300, contents: n report fields (DBE: cFields). Different from the xbase info.
 +  * 1965-1988 Offset: RBOFF_PARAMS = 1965, Size: RBSIZ_PARAMS = 24, contents: report parameters ?. Different from the xbase info.
 +  * 1989-1990 Version = 02 00
 +
 +
 +===== Fields =====
 +
 +This is the structure of one of the 25 12-byte fields blocks, called "data structure" in the xbase description
 +
 +  * 1-2 RBOFF_FWIDTH = 1, "Report width", Column width on report
 +  * 3-5 unused. "Pad1" and "Pad2".
 +  * 6 RBOFF_TOTAL = 6, "Total", (Y/N value). Compute a total on field
 +  * 7-8 RBOFF_FDEC = 7, "Decimal", 
 +  * 9-10 RBOFF_FCONTENT = 9, "Expression content". Number of expression containing value in expression list
 +  * 11-12 RBOFF_FHEADER = 11, "Title expression no". Number of expression containint header in expression list
 +
 +
 +
 +===== Params =====
 +
 +This is the contents of the 24-byte block at RBOFF_PARAMS:
 +
 +  * 1-2 RBOFF_PGHDR = 1, Value = 00 00 = 0 
 +  * 3-4 RBOFF_GRPEXP = 3, Value = 01 00 = 1 (DBE: aReport[RP_GROUPS][1][RG_TEXT])
 +  * 5-6 RBOFF_SUBEPXR = 5, Value = ff ff = -1 (DBE: aReport[RP_GROUPS][2][RG_TEXT])
 +  * 7-8 RBOFF_GRPHDR = 7, Value = 02 00 = 2 (DBE: aReport[RP_GROUPS][1][RG_HEADER])
 +  * 9-10 RBOFF_SUBHDR = 9, Value = ff ff = -1 (DBE: aReport[RP_GROUPS][2][RG_HEADER])
 +  * 11-12 RBOFF_PGWIDTH = 11, Value = 87 00 = 135 (DBE: aReport[RP_WIDTH])
 +  * 13-14 RBOFF_PGLINES = 13, Value = 32 00 = 50 (DBE: aReport[RP_LINES])
 +  * 15-16 RBOFF_LMARGIN = 15, Value = 01 00 = 1 (DBE: aReport[RP_LMARGIN])
 +  * 17-18 RBOFF_RMARGIN = 17, Value = 01 00 = 1 (DBE: aReport[RP_RMARGIN])
 +  * 19-20 RBOFF_COLCOUNT = 19, Value = 0a 00 = 10 (DBE: aReport[RP_COLCOUNT])
 +  * 21 RBOFF_DBLSPACE = 21, Value = 4e = 'N' (DBE: aReport[RP_DBLSPACE])
 +  * 22 RBOFF_SUMMARY = 22, Value = 4e = 'N' (DBE: aReport[RP_SUMMARY])
 +  * 23 RBOFF_AEJECT = 23, Value = 4e = 'N' (DBE: aReport[RP_GROUPS][1][RG_AEJECT]) Eject between groups ?
 +  * 24 RBOFF_OPTION = 24. Contains three bit values
 +    * bit 0: (DBE: aReport[RP_BEJECT])
 +    * bit 1: (DBE: aReport[RP_AEJECT])
 +    * bit 2: (DBE: aReport[RP_PLAIN])
 +
xb/start.txt · Last modified: 2020/11/23 17:23 by 127.0.0.1