2017-02-17 10 views
0

Как проверить байты для типа файла dbf в hex viewer для получения версии dbf?проверить версию dbase с hex viewer

Пример экрана ниже был взят из FoxBase +/Dbase III плюс, ни записки

На основании статьи из http://www.digitalpreservation.gov/formats/fdd/fdd000325.shtml.

0x03 = FoxBASE +/Dbase III плюс, нет памятка

Могу ли я понимаю, что первая строка первого символа 03 = 0x03?

03 75 02 11 92 00 00

Foxbase /DBaseIII Plus, no memo

Ниже неизвестность DBase версия, которую я хотел бы проверить. Он начинается с 04 75 02 10 DF Как я могу узнать, какая версия dBase это?

Я пытался подключиться, используя php dbase_open, но он не работает. (Ошибка сбщ: 'Внимание: dbase_open(): не удалось открыть базу данных C: ...')

Unknown Dbase version

ответ

0

Я думаю, что я нашел anwser, http://www.dbase.com/KnowledgeBase/int/db7_file_fmt.htm

04 = 4 для Dbase уровня 7.

Структура заголовка точно такая же, как описано на веб-сайте dbase.

Byte Contents  Description 
0  1 byte  Valid dBASE for Windows table file, bits 0-2 indicate version number: 3 for dBASE Level 5, 4 for dBASE Level 7. Bit 3 and bit 7 indicate presence of a dBASE IV or dBASE for Windows memo file; bits 4-6 indicate the presence of a dBASE IV SQL table; bit 7 indicates the presence of any .DBT memo file (either a dBASE III PLUS type or a dBASE IV or dBASE for Windows memo file). 
1-3  3 bytes  Date of last update; in YYMMDD format. Each byte contains the number as a binary. YY is added to a base of 1900 decimal to determine the actual year. Therefore, YY has possible values from 0x00-0xFF, which allows for a range from 1900-2155. 
4-7  32-bit  Number of records in the table. (Least significant byte first.) 
8-9  16-bit  Number of bytes in the header. (Least significant byte first.) 
10-11 16-bit  Number of bytes in the record. (Least significant byte first.) 
12-13 2 bytes  Reserved; filled with zeros. 
14  1 byte  Flag indicating incomplete dBASE IV transaction. 
15  1 byte  dBASE IV encryption flag. 
16-27 12 bytes  Reserved for multi-user processing. 
28  1 byte  Production MDX flag; 0x01 if a production .MDX file exists for this table; 0x00 if no .MDX file exists. 
29  1 byte  Language driver ID. 
30-31 2 bytes  Reserved; filled with zeros. 
32-63 32 bytes  Language driver name. 
64-67 4 bytes  Reserved. 
68-n 48 bytes each Field Descriptor Array (see 1.2). 
n+1  1 byte  0x0D stored as the Field Descriptor terminator. 
n+2     Field Properties Structure 

1,2 Поле дескриптора Массив

(One for each field in the table) 
Byte Contents Description 
0-31 32 bytes Field name in ASCII (zero-filled). 
32  1 byte  Field type in ASCII (B, C, D, N, L, M, @, I, +, F, 0 or G). 
33  1 byte  Field length in binary. 
34  1 byte  Field decimal count in binary. 
35-36 2 bytes  Reserved. 
37  1 byte  Production .MDX field flag; 0x01 if field has an index tag in the production .MDX file; 0x00 if the field is not indexed. 
38-39 2 bytes  Reserved. 
40-43 4 bytes  Next Autoincrement value, if the Field type is Autoincrement, 0x00 otherwise. 
44-47 4 bytes  Reserved. 

Пример

;04 = 4 for dBASE Level 7 
;75 02 10 = Date of last update; in YYMMDD 
;DF = 223 number of record 

; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 

04 75 02 10 DF 00 00 00 15 03 B6 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
44 42 57 49 4E 55 53 30 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

;Column name start from 68 offset (Need to convert from hex to ascii) 
;http://www.rapidtables.com/convert/number/hex-to-ascii.htm 
;Example, 53 49 54 45 4E 4D = SITENM 

;64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 
;   00 01 02 03 04 05 06 07 08 09 10 11 

00 00 00 00 53 49 54 45 4E 4D 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

;(See 1.2 Field Descriptor Array) 
;0-31 = Field name in ASCII (zero-filled) 
;32 = Field type in ASCII 
;From below example the field type is 43 which is equal to 'C' in ascii 
;33 = Field length in binary. 
;From below example the field length is 0A which is equal to '10' in decimal 
;28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 

00 00 00 00 43 0A 00 00 00 00 00 00 00 00 00 00 

;Column will start from 00 and end in offset 47 (total 48 bytes until it readched '0D' Field Descriptor terminator) 
;So below 00 is start with another column 
;Example, 44 41 54 45 = DATE 

;44 45 46 47 00 01 02 03 04 05 06 07 08 09 10 11 

00 00 00 00 44 41 54 45 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 0A 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 54 49 4D 45 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 08 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 54 52 41 4E 53 5F 43 4F 44 45 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 02 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 54 52 41 4E 53 5F 44 45 53 43 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 1E 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 42 55 53 4E 4F 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 02 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 55 4E 49 54 4E 4F 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 02 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 52 45 41 44 45 52 4E 4F 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 02 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 4F 4E 54 4E 41 4D 45 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 0C 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 44 52 4E 41 4D 45 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 0C 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 41 52 44 4E 4F 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 06 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 4E 41 4D 45 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 23 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 44 45 50 54 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 0C 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 4A 4F 42 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 0C 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 49 46 49 45 4C 44 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 43 1A 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 0D -> Here is the Field Descriptor terminator '0D' 
``` 

 Смежные вопросы

  • Нет связанных вопросов^_^