home *** CD-ROM | disk | FTP | other *** search
- To: webmaster@wotsit.demon.co.uk
- From: Peter Mikalajunas
-
- Your DBF description is iffy to say the least. I am enclosing a more
- accurate file layout. Note it include dBaseIII+, dBaseIV, FoxBase,
- FoxPro upto and including 2.6.
-
-
- DBF FILE STRUCTURE
- ~~~~~~~~~~~~~~~~~~
-
- BYTES DESCRIPTION
- 00 FoxBase+, FoxPro, dBaseIII+, dBaseIV, no memo - 0x03
- FoxBase+, dBaseIII+ with memo - 0x83
- FoxPro with memo - 0xF5
- dBaseIV with memo - 0x8B
- dBaseIV with SQL Table - 0x8E
-
- 01-03 Last update, format YYYYMMDD
- 04-07 Number of records in file (32-bit number)
- 08-09 Number of bytes in header (16-bit number)
- 10-11 Number of bytes in record (16-bit number)
- 12-13 Reserved, fill with 0x00
- 14 dBaseIV flag, incomplete transaction
- Begin Transaction sets it to 0x01
- End Transaction or RollBack reset it to 0x00
-
- 15 Encryption flag, encrypted 0x01 else 0x00
- Changing the flag does not encrypt or decrypt the records
-
- 16-27 dBaseIV multi-user environment use
- 28 Production index exists - 0x01 else 0x00
- 29 dBaseIV language driver ID
- 30-31 Reserved fill with 0x00
- 32-n Field Descriptor array
- n+1 Header Record Terminator - 0x0D
-
- FIELD DESCRIPTOR ARRAY TABLE
- BYTES DESCRIPTION
- 0-10 Field Name ASCII padded with 0x00
- 11 Field Type Identifier (see table)
- 12-15 Displacement of field in record
- 16 Field length in bytes
- 17 Field decimal places
- 18-19 Reserved
- 20 dBaseIV work area ID
- 21-30 Reserved
- 31 Field is part of production index - 0x01 else 0x00
-
- FIELD IDENTIFIER TABLE
- ASCII DESCRIPTION
- C Character
- D Date, format YYYYMMDD
- F Floating Point
- G General - FoxPro addition
- L Logical, T:t,F:f,Y:y,N:n,?-not initialized
- M Memo (stored as 10 digits representing the dbt block number)
- N Numeric
- P Picture - FoxPro addition
-
- Note all dbf field records begin with a deleted flag field. If record is
- deleted - 0x2A (asterisk) else 0x20 (space) End of file is marked with
- 0x1A
-
- Peter Mikalajunas
- kd9fb@xnet.com
- http://www.xnet.com/~kd9fb