xb:start
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
xb:start [2006/05/13 22:54] – fgm | xb:start [2020/11/23 17:23] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== FRM Files ====== | ||
+ | |||
+ | * Constant size = 1990 bytes (RBSIZ_FILE) | ||
+ | * Offsets are 1-based, not 0-based | ||
+ | * Little-endian format | ||
+ | * Rather good description at http:// | ||
+ | * Other info from the source of the public domain DBE package at http:// | ||
+ | * Differences noted with above reference | ||
+ | * Files start and end with "02 00". They don't end with the array of data structures | ||
+ | * There is no global 36-byte repeated structure but 25 12-byte Field structures and 1 24-byte Params structure, which defines, among other things, the group/ | ||
+ | |||
+ | |||
+ | |||
+ | ===== 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" | ||
+ | |||
+ | * 1-2 RBOFF_FWIDTH = 1, " | ||
+ | * 3-5 unused. " | ||
+ | * 6 RBOFF_TOTAL = 6, " | ||
+ | * 7-8 RBOFF_FDEC = 7, " | ||
+ | * 9-10 RBOFF_FCONTENT = 9, " | ||
+ | * 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 = ' | ||
+ | * 22 RBOFF_SUMMARY = 22, Value = 4e = ' | ||
+ | * 23 RBOFF_AEJECT = 23, Value = 4e = ' | ||
+ | * 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