BLC%jpl-vax@sri-unix.UUCP (10/02/83)
From: Bruce L. Conroy <BLC@jpl-vax> STRUCTURE OF DBASE II FILES Based on an analysis of several CP/M type data files, the structure of dBase II files appears to be as follows: 1) Bytes 0 to 7; General Header Byte 0, always 2--Purpose unknown Bytes 2-3, number of records, binary, low, hi Bytes 4-6, date of last update, (mo, day, year), binary Bytes 7-8, number of bytes per record, binary, low, hi 2) Bytes 8 to 520; Field Headers 16 Bytes per Field, up to 32 Fields. Relative Byte in each Header Bytes 0-9, Name, ASCII, padded with NULLS (<CR> as first byte marks end of Fields) Byte 10, always 0 Byte 11, Type, ASCII, C N or L Byte 12, Width, Binary, 1 for Logical Bytes 13-14, 70B9H + Sum of Widths of Preceeding Fields (Possibly an in-memory pointer) Byte 15, Decimal Places, binary, 0 for C and L Types 3) Byte 521; Normally 0, <CR> (0DH) in data base with 32 fields (this would be the first byte of a 33rd field.) 4) Bytes 522 on; Data, ASCII, Number of Bytes + 1 Bytes per Record Each Data record begins with a blank (20H), followed by the fields in order, with no intervening blanks or nulls. Thus the start of the Nth record of a file with BPR bytes per record is at byte 522 + (N - 1) * (BPR + 1) + 1. ------