mirror of https://github.com/x64dbg/btparser
59 lines
1.5 KiB
Plaintext
59 lines
1.5 KiB
Plaintext
|
1:
|
||
|
2:
|
||
|
3:
|
||
|
4:
|
||
|
5:
|
||
|
6:
|
||
|
7:
|
||
|
8:
|
||
|
9:
|
||
|
10: string yearFrom1900 ( char yy )
|
||
|
11: {
|
||
|
12: string s ;
|
||
|
13: SPrintf ( s , "%d" , 1900 + yy ) ;
|
||
|
14: return s ;
|
||
|
15: }
|
||
|
16:
|
||
|
17: struct DBF {
|
||
|
18: struct HEADER {
|
||
|
19: char version ;
|
||
|
20: struct DATE_OF_LAST_UPDATE {
|
||
|
21: char yy < read = yearFrom1900 , format = decimal > ;
|
||
|
22: char mm < format = decimal > ;
|
||
|
23: char dd < format = decimal > ;
|
||
|
24: } DateOfLastUpdate ;
|
||
|
25: int numberOfRecords ;
|
||
|
26: short lengthOfHeaderStructure ;
|
||
|
27: short lengthOfEachRecord ;
|
||
|
28: char reserved [ 2 ] ;
|
||
|
29: char incompleteTrasaction < format = decimal > ;
|
||
|
30: char encryptionFlag < format = decimal > ;
|
||
|
31: int freeRecordThread ;
|
||
|
32: int reserved1 [ 2 ] ;
|
||
|
33: char mdxFlag < format = decimal > ;
|
||
|
34: char languageDriver < format = decimal > ;
|
||
|
35: short reserved2 ;
|
||
|
36: } header ;
|
||
|
37: struct FIELD {
|
||
|
38: char fieldName [ 11 ] ;
|
||
|
39: char fieldType ;
|
||
|
40: int fieldDataAddress ;
|
||
|
41: char fieldLength < format = decimal > ;
|
||
|
42: char decimalCount < format = decimal > ;
|
||
|
43: short reserved ;
|
||
|
44: char workAreaId < format = decimal > ;
|
||
|
45: short reserved1 ;
|
||
|
46: char flags < format = hex > ;
|
||
|
47: char reserved2 [ 7 ] ;
|
||
|
48: char indexFieldFlag < format = decimal > ;
|
||
|
49: } field [ ( header . lengthOfHeaderStructure - 33 ) / sizeof ( struct FIELD ) ] ;
|
||
|
50: char Terminator < format = hex > ;
|
||
|
51: struct RECORD {
|
||
|
52: char deletedFlag ;
|
||
|
53: char fields [ header . lengthOfEachRecord - 1 ] ;
|
||
|
54: } record [ header . numberOfRecords ] < optimize = false > ;
|
||
|
55: } dbf < optimize = false > ;
|
||
|
56:
|
||
|
57:
|
||
|
58:
|
||
|
59: tok_eof
|