Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi FoxPro Dbf Dateiaufbau - Memoinhalt zuordnen (https://www.delphipraxis.net/189269-foxpro-dbf-dateiaufbau-memoinhalt-zuordnen.html)

Captnemo 24. Mai 2016 07:59

FoxPro Dbf Dateiaufbau - Memoinhalt zuordnen
 
Ich bin gerade bei einem Projekt (welches ich eher aus persönlichem Interesse angefangen habe) eine FoxPro-Dbf selbst einzulesen und anzuzeigen.
Das klappt soweit auch ganz gut, weil der Aufbau hier ja halbwegs gut dokumentiert ist. (Obwohl sich auch diese Dokumentation in einigen Details von der englischen leider unterscheidet).

Momentan bin ich grade dabei die Memo-Inhalte aus der dbt einzulesen. Aber die Zuordnung macht mir Probleme. Leider steht in der Dokumentation von MS nicht, wie der Feldinhalt eines Memo-Feldes zu lesen ist, damit ich daraus auf das passende Memo in der dbt schließen kann.
Bei einem leeren Memofeld finde ich Hex: 00 00 00 00. Aber zum Beispiel beim einem Memo steht dann Hex: 08 00 00 00 in der dbf, das Memo ist aber das erste in der dbt.
Und bei einem anderen Memofeld steht Hex: F7 00 00 00 (Dez: 247), welches in der dbt aber an Stelle 172 wiederfinde.

Kennt jemand eine bessere Dokumentation für das Fileformat oder kann mir sogar sagen wie das interpretiert werden muss. Ich erkenne da nicht wirklich einen Logik, die aber da sein muss.
Es gibt leider noch andere Informationen, die in der o.g. Dokumentation im unklaren gelassen werden. Aber die kann ich mir vielleicht auch so zusammenreimen.

Sir Rufo 24. Mai 2016 08:05

AW: FoxPro Dbf Dateiaufbau - Memoinhalt zuordnen
 
Hast du es schon mal mit dem FoxPro OLEDB Treiber probiert?

Captnemo 24. Mai 2016 08:09

AW: FoxPro Dbf Dateiaufbau - Memoinhalt zuordnen
 
Könnte ich machen, will ich aber nicht.

Das Ziel ist es ja gerade, die Daten ohne zusätzliche Schichten direkt auszulesen.

nahpets 24. Mai 2016 09:00

AW: FoxPro Dbf Dateiaufbau - Memoinhalt zuordnen
 
Es gibt da die Komponente TDbf, die mit dBase-Dateien und deren Abkömmlingen umgehen kann. Sie kann auch Memos lesen.

Eventuell hilft Dir ja das Studium der zugehörigen Sourcen weiter.

Die von Dir genannte F7h bedeutet, dass das Memo im Block F7h der DBT zu finden ist. Ein Block ist 512 Byte groß. Das müsste dann heißen, dass Du das gesuchte Memo an der Byteposition F7h * 200h bzw. dezimal 247 * 512 = 126464 finden müsstest. Hab' jetzt nur kurz mal in die Dokus geschaut und kann daher nicht sagen, ob ich mit dieser Beschreibung wirklich richtig liege.

Strukturbeschreibungen hab ich finden können:
http://web.archive.org/web/201503230.../DBFstruct.htm
http://www.clicketyclick.dk/database...tml#DBT_STRUCT
http://www.dbf2002.com/dbf-file-format.html
http://www.digitalpreservation.gov/f...dd000325.shtml

Captnemo 24. Mai 2016 17:09

AW: FoxPro Dbf Dateiaufbau - Memoinhalt zuordnen
 
Danke. Das mit der TDbf ist eine gute Idee.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz