Hi Leute,
ich beschäftige mich z.Zt. damit, den Inhalt alter (aus DOS-Zeiten) Btrieve .DAT Dateien (heute Pervasive) anzuzeigen.
Sie stammen anscheinend aus einer sehr frühen Zeit vor Version 6.0, als der Zugriff über die Btrieve.exe als TSR lief, und es handelt sich um Standard-Dateien, d.h. es liegt keine Aufteilung in Index- und Daten-Datei vor. .DDF-Dateien sind nicht vorhanden.
Die einzigen Dokumentationen, so man sie so nennen will, die ich gefunden habe, sind die von Wikipedia und die Hilfe-Dateien von Pervasive.
Beide Quellen sind nicht sonderlich aufschlussreich, was den genauen Aufbau der Pages anbelangt.
Bisher habe ich die folgenden Informationen gesammelt; dabei ist zu beachten, dass ein WORD jeweils als Little Endian gespeichert wird, d.h. Reihenfolge niederwertiges Byte - höherwertiges Byte (bei einem DWORD aber zuerst das höherwertige Bytepaar, dann das niederwertige Bytepaar):
Alle Pages:
Bytes 2 - 3: fortlaufende Nummer der Page
Header:
Bytes 8 - 9: Pagegröße der Datei
Bytes 20 - 21: Anzahl der Indizes (verbundene als 1 Index gezählt)
Bytes 22 - 23: Datensatzgröße in Bytes (ohne Adressierungen, Endzeichen etc.)
Bytes 24 - 25: Datensatzgröße in Bytes (mit Adressierungen, Endzeichen etc.)
Bytes 26 - 31: Anzahl der vorhandenen Datensätze
Bytes 40 - 41: Anzahl der vorhandenen Pages
Bytes 32 - 33: scheinen in direkter Verbindung zu Bytes 40 - 41 zu stehen (enthalten meist den um 1 verminderten Wert von Byte 40 - 41)
Ab Byte 256: Definition der Indizes
16 einleitende Bytes
dann ein 30-Byte-Block je Index
Bytes 6 - 7: Anzahl der Index-Einträge
Bytes 10 - 11: Summe der Bytes für alle Datentypen (alle Spalten) dieses Index
Bytes 12 - 13: Bytes für gesamten Indexeintrag (inkl. Adressierung 4 oder 8 Bytes und 4 mal 0xFF als Endzeichen des Index)
Bytes 20 - 21: Position im Datensatz in Bytes (beginnend mit Byte 0)
Bytes 22 - 23: Bytes für den Datentyp dieses Index-Bestandteils (dieser Spalte)
Bytes 28 - 29: Datentyp dieses Index-Bestandteils (dieser Spalte)
Index-Page:
Bytes 6 - 7: Anzahl der folgenden Index-Einträge
Bytes 8 - 15: 8 * 0xFF
Für jede weitere Information oder Quellenangabe wäre ich dankbar.
Insbesondere würde ich Informationen dazu schätzen, wo die Größe der Datensätze zu finden ist, eine Spaltenanzahl, und ob es damals unter Btrieve ein 40-Bit Format für Fließkommazahlen als Datentyp gab (und wie dieses aufgebaut war).
Dokumentationen zum Aufbau der Dateien (Spaltenanzahl, Datentypen) liegen mir nicht vor, es ist lediglich das alte DOS-Programm, das diese Dateien verwendet, vorhanden.
Dass mir mit dem Erkennen der verwendeten Datentypen noch ein "bißchen" Arbeit bevorsteht ist mir bekannt.
Ich werde mich bemühen, neue Infos in diesem Post zu sammeln, so dass nicht jeder die gesamten Posts danach absuchen muss (Falls das nicht gewünscht ist, bitte ich um kurze Info durch einen Mod.)
Vielen Dank im Voraus!
ich beschäftige mich z.Zt. damit, den Inhalt alter (aus DOS-Zeiten) Btrieve .DAT Dateien (heute Pervasive) anzuzeigen.
Sie stammen anscheinend aus einer sehr frühen Zeit vor Version 6.0, als der Zugriff über die Btrieve.exe als TSR lief, und es handelt sich um Standard-Dateien, d.h. es liegt keine Aufteilung in Index- und Daten-Datei vor. .DDF-Dateien sind nicht vorhanden.
Die einzigen Dokumentationen, so man sie so nennen will, die ich gefunden habe, sind die von Wikipedia und die Hilfe-Dateien von Pervasive.
Beide Quellen sind nicht sonderlich aufschlussreich, was den genauen Aufbau der Pages anbelangt.
Bisher habe ich die folgenden Informationen gesammelt; dabei ist zu beachten, dass ein WORD jeweils als Little Endian gespeichert wird, d.h. Reihenfolge niederwertiges Byte - höherwertiges Byte (bei einem DWORD aber zuerst das höherwertige Bytepaar, dann das niederwertige Bytepaar):
Alle Pages:
Bytes 2 - 3: fortlaufende Nummer der Page
Header:
Bytes 8 - 9: Pagegröße der Datei
Bytes 20 - 21: Anzahl der Indizes (verbundene als 1 Index gezählt)
Bytes 22 - 23: Datensatzgröße in Bytes (ohne Adressierungen, Endzeichen etc.)
Bytes 24 - 25: Datensatzgröße in Bytes (mit Adressierungen, Endzeichen etc.)
Bytes 26 - 31: Anzahl der vorhandenen Datensätze
Bytes 40 - 41: Anzahl der vorhandenen Pages
Bytes 32 - 33: scheinen in direkter Verbindung zu Bytes 40 - 41 zu stehen (enthalten meist den um 1 verminderten Wert von Byte 40 - 41)
Ab Byte 256: Definition der Indizes
16 einleitende Bytes
dann ein 30-Byte-Block je Index
Bytes 6 - 7: Anzahl der Index-Einträge
Bytes 10 - 11: Summe der Bytes für alle Datentypen (alle Spalten) dieses Index
Bytes 12 - 13: Bytes für gesamten Indexeintrag (inkl. Adressierung 4 oder 8 Bytes und 4 mal 0xFF als Endzeichen des Index)
Bytes 20 - 21: Position im Datensatz in Bytes (beginnend mit Byte 0)
Bytes 22 - 23: Bytes für den Datentyp dieses Index-Bestandteils (dieser Spalte)
Bytes 28 - 29: Datentyp dieses Index-Bestandteils (dieser Spalte)
Index-Page:
Bytes 6 - 7: Anzahl der folgenden Index-Einträge
Bytes 8 - 15: 8 * 0xFF
Für jede weitere Information oder Quellenangabe wäre ich dankbar.
Insbesondere würde ich Informationen dazu schätzen, wo die Größe der Datensätze zu finden ist, eine Spaltenanzahl, und ob es damals unter Btrieve ein 40-Bit Format für Fließkommazahlen als Datentyp gab (und wie dieses aufgebaut war).
Dokumentationen zum Aufbau der Dateien (Spaltenanzahl, Datentypen) liegen mir nicht vor, es ist lediglich das alte DOS-Programm, das diese Dateien verwendet, vorhanden.
Dass mir mit dem Erkennen der verwendeten Datentypen noch ein "bißchen" Arbeit bevorsteht ist mir bekannt.
Ich werde mich bemühen, neue Infos in diesem Post zu sammeln, so dass nicht jeder die gesamten Posts danach absuchen muss (Falls das nicht gewünscht ist, bitte ich um kurze Info durch einen Mod.)
Vielen Dank im Voraus!
Zuletzt bearbeitet: