+---------+--------< 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) ----- zusammenfassend *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)