Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TurboPower B-Tree Filer (https://www.delphipraxis.net/71745-turbopower-b-tree-filer.html)

Playwitch 20. Jun 2006 14:42

Datenbank: B-Tree Filer • Zugriff über: Delphi 5

TurboPower B-Tree Filer
 
Hallo,

kennt jemand den B-Tree Filer von TurboPower?

Ich habe alte B-Tree Daten, die von einem TurboPascal-Programm unter DOS stammen. Die Datenbank-Software hieß damals noch B-Tree Isam von ENZ EDV-Beratung, wurde später von TurboPower übernommen und heißt jetzt B-Tree Filer.

Nun möchte ich daraus in Delphi 5 Daten auslesen, um sie in einer anderen Datenbank zu speichern.
Das geht soweit ganz gut, aber die Zahlenwerte, Float und Integer, werde falsch ausgelesen.

Kennt sich jemand aus und kann mir helfen?

Holger

mikhal 20. Jun 2006 15:55

Re: TurboPower B-Tree Filer
 
TurboPower hat alle seine Projekte OpenSource gestellt, nachdem die Firma aufgelöst wurde.

Hier findest du alles, was zu B-Tree-Filer freigegeben wurde.

Grüße
Mikhal

Hansa 20. Jun 2006 16:19

Re: TurboPower B-Tree Filer
 
Zitat:

Zitat von Playwitch
...aber die Zahlenwerte, Float und Integer, werde falsch ausgelesen...

Aha. Also falsch ausgelesen ? Was soll das jetzt irgendwem sagen ?

Playwitch 20. Jun 2006 19:59

Re: TurboPower B-Tree Filer
 
Hallo Mikhal,
kenne ich und die Sachen habe ich schon. Trotzdem danke!

Hallo Hansa,
mit falsch ausgelesen meine ich, dass ein ein scheinbar nicht gültiger Wert gelesen wird. Wenn ich das in einer MessageBox ausgeben lasse oder beim debuggen anzeigen lasse, erscheint irgendwas mit 10^-41 oder so.
In der DOS-Version stehen aber an diesen Stellen echte Werte, z. B. Preise.

Meine Frage geht dahin, ob jemand schon mal das gleiche Problem hatte, oder ob jemand weiß, ob es zwischen der alten DOS-Version und dem B-Tree Filer einen Unterschied im Datenformat in den .dat-Dateien gibt.

Grüße
Holger

Hansa 20. Jun 2006 20:26

Re: TurboPower B-Tree Filer
 
Du mußt Teile der Daten zeigen. Vorher kann man kaum was sagen. Wie lange sind denn die Datensätze ?

alzaimar 20. Jun 2006 22:59

Re: TurboPower B-Tree Filer
 
HSuch dir einfach ein altes TP7 und schreib einen BTreeFiler-zu-DBF Konverter. So ein Teil ist wirklich schnell geschrieben.

Prinzipiell ist eine BTreeFiler-Datenbank einfach als "File Of TBlock", wobei TBlock ein Record, bestehend aus 4 Bytes Header und deinem Record. Der Header gibt an, ob der Datensatz gelöscht ist, oder nicht (glaub ich).

Schau Dir doch die Datei einfach mal mit einem Hex-Editor an, dann sieht man doch, wo es hakt.

webcss 20. Jun 2006 23:28

Re: TurboPower B-Tree Filer
 
ich hatte mal ein ähnliches problem so gelöst: unter tp die BTreeFiler daten einfach in string konvertiert und in einer Textdatei gespeichert(delimited), danach das textfilein delphi in meine zieldatenbank konvertiert. soweit ich weiss gibt est die Opensourceversion auch für windows (TP f.Windows zumindest) du kannst dir aber deinen eigenen Record zusammenbauen (aufgrund des Aufbaus wie du ihn im source findest) und direkt konvertieren. Du musst dabei nur bedenken das z.b. integer damals nur 16bit breit waren und heute 32 bit(damals longint) bzw 64bit (damals fehlanzeige). daran kanns liegen, das du falsche werte bekommst. :wink:

Hansa 20. Jun 2006 23:36

Re: TurboPower B-Tree Filer
 
Er soll einen Datensatz posten, oder eine kleine DAT anhängen. Notfalls frage ich Enz. :mrgreen:

jbg 21. Jun 2006 06:11

Re: TurboPower B-Tree Filer
 
Zitat:

Zitat von Playwitch
Das geht soweit ganz gut, aber die Zahlenwerte, Float und Integer, werde falsch ausgelesen.

Das ein Integer unter TurboPascal nur zwei Byte und unter Delphi (ab Version 2) vier Bytes hat, weißt du?

Ghostwalker 21. Jun 2006 08:13

Re: TurboPower B-Tree Filer
 
Ja..ich schätze das du die Datentypen falsch definiert hast.

Wie bereits oben erwähnt, solltest du für alte Daten statt den delphi-Integer (32-Bit) den alten
Smallint (16-Bit) verwenden, das sollte klappen.

Desweiteren mußt du auf die Real-Werte achten. Der Datentyp Float wird unter Delphi für API-Calls
verwendet und ist in der Regel extended. Für alte DOS-Daten solltest du den Datentyp Real bzw. Real48
verwenden.


Hoffe das Hilft dir weiter :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 Uhr.
Seite 1 von 2  1 2      

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