+---------+--------< DBF III+ - HEADER >------------------------+
| Offset | BYTE | Bedeutung des/ der Byte(s) |
|---------|-------------------|---------------------------------|
| 0 | 1 byte | Dbase III Versions Nummer |
| | | |
|---------|-------------------|---------------------------------|
| 1-3 | 3 bytes | Datum des letzten Updates |
| | | (JJ MM DD) binaer |
|---------|-------------------|---------------------------------|
| 4-7 | 32 bit (Longint) | Anzahl der Records |
|---------|-------------------|---------------------------------|
| 8-9 | 16 bit (Word) | Laenge des Haeders |
|---------|-------------------|---------------------------------|
| 10-11 | 16 bit (Word) | Laenge eines Records |
|---------|-------------------|---------------------------------|
| 12-31 | 20 bytes | wird nicht beutzt |
|---------|-------------------|---------------------------------|
| Folgende Anzahl Bytes Bytes beschreiben die benutzten Felder. |
| Jede Umschreibung umfasst 32 Bytes. Die maximale Anzahl der |
| Felder betraegt 128. Das Ende der Tabelle markiert ein #13. |
|---------|-------------------|---------------------------------|
| 0-10 | 11 bytes | Feldname (ASCIIZ) |
|---------|-------------------|---------------------------------|
| 11 | 1 byte | Feldtype : |
| | | 'C' = character |
| | | 'D' = datum |
| | | 'M' = memo |
| | | 'L' = integer |
| | | 'R' = real |
|---------|-------------------|---------------------------------|
| 12-15 | 32 bit (Longint) | Feld data-adress |
|---------|-------------------|---------------------------------|
| 16 | 1 byte | die laenge des Feldes |
|---------|-------------------|---------------------------------|
| 17 | 1 byte | Anzahl der Nachkommastellen. |
|---------|-------------------|---------------------------------|
| 18-31 | 14 bytes | wird nicht benutzt |
|---------|-------------------|---------------------------------|
| Etc...... |
+0000 03 5E 02 0D 02 00 00 00-61 00 47 00 00 00 00 00 .^......a.G.....
! !______! !_________! !___! !___! !_________!
! ! ! ! ! !
! ! ! ! ! Reserviert
! ! ! ! Satzlaenge (hier 71 Bytes)
! ! ! Laenge des Headers (hier 97 Bytes)
! ! Anzahl der Datensaetze (hier 2)
! Datum der letzten Aenderung (JJ-MM-TT, hier 13.02.94)
dBase-Version (03 = dBase III, 04 = dBase IV)
0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
!_____________________________________________!
!
Reserviert
0020 49 44 00 00 00 00 00 00-00 00 00 4E 00 00 00 00 ID.........N....
!______________________________! ! !_________!
! ! !
! ! Reserviert
! Feldtyp (hier N = Numeric)
Name des 1. Felds (hier "ID", max. 11 Zeichen, mit 00 aufgefuellt)
0030 14 05 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
! !______! ! !______________________________!
! ! ! !
! ! ! Reserviert
! ! Arbeitsbereichs-ID (am besten ignorieren)
! Reserviert
Feldlaenge (hier 20 Stellen)
0040 47 52 55 50 50 45 00 00-00 00 00 43 00 00 00 00 GRUPPE.....C....
!______________________________! ! !_________!
! ! !
! ! Reserviert
! Feldtyp (hier C = Character)
Name des 2. Felds ("GRUPPE", max. 11 Zeichen, mit 00 aufgefuellt)
0050 32 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 2...............
! !______! ! !______________________________!
! ! ! !
! ! ! Reserviert
! ! Arbeitsbereichs-ID (am besten ignorieren)
! Reserviert
Feldlaenge (hier 50 Zeichen)
0060 0D 20 20 20 20 20 20 20-20 20 20 20 20 20 32 37 . 27
! ! !_______________________________________!...
! ! !
! ! Feld Nr. 1 (20 Stellen numerisch, s.o.)
! Status 1. Datensatz (20h = ' ' = OK, 2Ah = '*' = geloescht)
Ende des Headers (0Dh = CR = Carriage Return)
0070 2E 30 30 30 30 30 41 6E-74 69 20 56 69 72 75 73 .00000Anti Virus
...!_______________! !___________________________!...
! !
! Feld Nr. 2 (50 Stellen Text, s.o.)
Feld Nr. 1 (Fortsetzung)
0080 20 20 20 20 20 20 20 20-20 20 20 20 20 20 20 20
...!_____________________________________________!...
!
Feld Nr. 2 (Fortsetzung)
0090 20 20 20 20 20 20 20 20-20 20 20 20 20 20 20 20
...!_____________________________________________!...
!
Feld Nr. 2 (Fortsetzung)
00A0 20 20 20 20 20 20 20 20-20 20 20 20 20 20 20 20
...!_____________________! ! !__________________!...
! ! !
! ! Feld Nr. 1 (s.o.)
! Status 2. Datensatz
Feld Nr. 2 (Fortsetzung)
00B0 20 20 20 20 20 32 38 2E-30 30 30 30 30 42 65 74 28.00000Bet
...!____________________________________! !______!
! !
! Feld Nr. 2 (s.o.)
Feld Nr. 1 (Fortsetzung)
00C0 72 69 65 62 73 73 79 73-74 65 6D 20 20 20 20 20 riebssystem
...!_____________________________________________!...
!
Feld Nr. 2 (Fortsetzung)
00D0 20 20 20 20 20 20 20 20-20 20 20 20 20 20 20 20
...!_____________________________________________!...
!
Feld Nr. 2 (Fortsetzung)
00E0 20 20 20 20 20 20 20 20-20 20 20 20 20 20 20 1A
...!__________________________________________! !
! !
! Dateiende (1Ah = EOF)
Feld Nr. 2 (Fortsetzung)
Zusammenfassung
-----------------
Byte Inhalt
------------------------------------------------------------
0 gueltige dBase-Datei
Bits 0-2 enthalten die dBASE-Versionsnummer
1-3 Datum der letzten Aktualisierung (im Format JJMMTT)
4-7 Anzahl der Datensaetze (als 32-Bit-Zahl)
8-9 Anzahl der Bytes im Dateivorspann (als 16-Bit-Zahl)
10-11 Datensatzgroesse in Byte (als 16-Bit-Zahl)
12-13 Reserviert (fuer was auch immer)
14 Markierung fuer nicht beendete Transaktion
15 Markierung fuer Verschluesselung
16-27 Reserviert fuer Netzwerkbetrieb
28 Markierung fuer MDX-Index (0 = kein Index / 1 = Arbeitsindex)
29-31 Reserviert (fuer was auch immer)
32-n Feldbeschreibungen zu je 32 Byte wie folgt:
Feldbeschreibung
------------------
Byte Inhalt
------------------------------------------------------------
0-10 Dateiname im ASC-Code (aufgefuellt mit 00H)
11 Dateityp
C - Zeichen
D - Datum
F - Fliesskommazahl
L - Logisch (Ja/Nein - Wahr/Falsch)
M - Memofeld
N - Numerisch
12-15 Reserviert
16 Feldlaenge
17 Anzahl der Dezimalstellen
18-19 Reserviert
20 Nummer des Arbeitsbereiches
21-30 Reserviert
31 Markierung fuer MDX-Index (0 = kein / 1 = Arbeitsindex)