AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Datenstruktur erkennen Turbo Pascal Dos mit Toolbox(4)
Thema durchsuchen
Ansicht
Themen-Optionen

Datenstruktur erkennen Turbo Pascal Dos mit Toolbox(4)

Ein Thema von einseins · begonnen am 12. Nov 2013 · letzter Beitrag vom 13. Jan 2014
Antwort Antwort
Seite 2 von 3     12 3      
grl

Registriert seit: 5. Feb 2007
174 Beiträge
 
FreePascal / Lazarus
 
#11

AW: Datenstruktur erkennen Turbo Pascal Dos mit Toolbox(4)

  Alt 12. Nov 2013, 21:16
Hmmm - ich hab mal irgendwo gelesen, daß die Filestruktur vom TurboPower BTree Filer übernommen wurde - der ist via Sourceforge noch zu kriegen.

Vielleicht kann man damit die Dateien lesen?

GRL
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#12

AW: Datenstruktur erkennen Turbo Pascal Dos mit Toolbox(4)

  Alt 12. Nov 2013, 21:27
grl: BTree-Filer verwendet genau das im Handbuch (und von mir) beschriebene Format (also ein File of TDataRecord). Das Problem ist der Aufbau von 'TDataRecord'. Das muss man rausbekommen.
  Mit Zitat antworten Zitat
MeierZwoo

Registriert seit: 3. Dez 2012
106 Beiträge
 
#13

AW: Datenstruktur erkennen Turbo Pascal Dos mit Toolbox(4)

  Alt 12. Nov 2013, 23:30
Leider ist der Aufbau der Datendatei eindeutig ,
Wieso "leider"? Ein eindeutiger Aufbau einer Datendatei ist doch kein Manko, im Gegenteil.

Und es ist richtig, daß die DataToolbox durch BTree-Isam abgelöst wurde, diese dann als "Filer" übernommen und inzwischen der Quellcode freigegeben wurde. Der Quellcode muß aber angepaßt werden, da er nur bis Delphi 2007 unterstützt. Nur ist das eh egal, da ja wohl eine Konvertierung zu einem neuen Programm vorgenommen werden soll, also aus den reinen Datendateien Die Datensätze ausgelesen und einem neuem Programm (konvertiert) zur Verfügung gestellt werden sollen. Die Indexdateien kann man dabei getrost vergessen, weil deren Struktur zu ermitteln ohne Quellcode und den darin beschriebenen Indexparametern so gut wie unmöglich ist.

Ich würde erstmal einen 32bit PC sicherstellen, damit auch später noch von vorh. Daten eine Aktenlage (auf Papier) hergestellt werden kann (ab 64bit gibt es keine DOS-VM mehr). Dann zum Jahreswechsel mit Jahresabschluß die Aktenlage herstellen.

Bei dem Wust an Dateien (s. rar) viel Zeit nehmen oder die weitergeführten Stamm-Daten, wie z.B. Kunden/Mandanten/Lager/Waren-Parameter einfach von Ausdrucken oder dem alten Programm selbst in das neue Programm eintippseln.

@einseins, wenn du die Datendateien wirklich auslesen und konvertieren willst, beachte auch, daß nicht alle Datensätze einer Datei gleich aufgebaut sein müssen - nur ihre Gesamtlänge [byte] ist wohl gleich, aber auch nicht komplett benutzt.

Die Datendateien bestehen aus einem Header (erster Satz, Rec 0), in dem vier Parameter, drei Longint und ein Word stehen. Diese geben
a) FirstFree:longint (RecNr des ersten gelöschten Recs)
b) NumFree:longint (Anzahl der gelöschten Recs)
c) UsedRecs:longint (Anzahl Recs ohne Rec0 und ohne gelöschte/ungültige Recs
d) Reclen:word
an. Daraus interessiert beim Auslesen der Daten ansich nur RecLen, wiel diese der Record-Größe zum deklarieren der Datei oder dem Lesepuffer entsprechen muß.

Wie oben schon gesagt (Furtbichler) besteht jeder Datensatz aus einem Longint (4 Byte) und den nachfolgenden Daten. Der Longint zählt mit zum RecLen und zum zu deklarierenden Record/Puffer. Ein Datensatz ist nur gültig, wenn diese ersten vier Byte alle Null sind - ansonsten gilt er als gelöscht und der Longint ist ein Zeiger auf den nächsten, gelöschten Datensatz. Aber das sollte auch in dem vorher schon verlinkten Handbuch stehen (?).

Die spezielle Struktur eines Datensatzes ermittelt man am besten, in dem man mit dam Anwenungsprogramm Daten anlegt; möglichst einedeutig wiedererkennbar und dann in den Datendateien nach diesen Daten sucht (z.B. mit einer Hilfsroutine oder einem HexEditor). Und dann daraus die jeweiligen Records ermittelt.

FF (Fiel Freude), ich hoffe, Du wirst gut bezahlt.
  Mit Zitat antworten Zitat
einseins

Registriert seit: 12. Nov 2013
9 Beiträge
 
#14

AW: Datenstruktur erkennen Turbo Pascal Dos mit Toolbox(4)

  Alt 13. Nov 2013, 12:36
Oh das klingt sehr gut . Ganz herzlichen Dank an alle die mir diese Informationen zur Verfügung gestellt haben . Ich werde nun erst mal die nächste Zeit nutzen und Datenanalyse machen . Eines habe ich schon herausgefunden . Das Programm legt jede Rechnung und Lieferschein usw.. in eine eigene Datei ab . Sicher könnt ihr euch vorstellen wie viele Dateien das sind (Seit 1990) . Man kann sagen der Irrsinn nimmt seinen Lauf. Falls eine der Dateien fehlt löschen oder defekt wird eine Fehlermeldung gebracht und das Programm beendet seinen Dienst. Gut eine kleine Frage bleibt aber noch: Zahlen und oder Beträge oder Mengenangaben wie diese abgelegt werden oder wurden ,da es dennoch Bereiche im Datensatz gibt die ich nicht ohne weiteres zuordnen kann.
Na ich versuche mal mein Glück und Danke
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#15

AW: Datenstruktur erkennen Turbo Pascal Dos mit Toolbox(4)

  Alt 13. Nov 2013, 12:50
Ideal währe es ja, wen für Geldbeträge Delphi-Referenz durchsuchenCurrency als Datentyp verwendet wurden (das ist praktisch ein Int64, welcher durch 10000 geteilt wird, bzw. stat 12,34 steht dann 123400 im Speicher), oder irgend ein BCD-Format (aber das glaub ich weniger), um Rundungsfehler auszuschließen.
Ansonsten bleiben ja nur noch Delphi-Referenz durchsuchenSingle oder Delphi-Referenz durchsuchenDouble (oder Delphi-Referenz durchsuchenExtended und hoffentlich kein Delphi-Referenz durchsuchenComp).

Ich lege dir da gern den Hier im Forum suchenHxD ans Herz. Dieser Hexeditor zeigt dir gern an, was in den markierten Bytes drinstehen würde und du kannst nachsehn, ob das zu irgendeinem Feld passt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (13. Nov 2013 um 12:54 Uhr)
  Mit Zitat antworten Zitat
MeierZwoo

Registriert seit: 3. Dez 2012
106 Beiträge
 
#16

AW: Datenstruktur erkennen Turbo Pascal Dos mit Toolbox(4)

  Alt 13. Nov 2013, 12:52
Gut eine kleine Frage bleibt aber noch: Zahlen und oder Beträge oder Mengenangaben wie diese abgelegt werden oder wurden
Siehe: "Die spezielle Struktur eines Datensatzes ermittelt man am besten, in dem man mit dam Anwendungsprogramm <eindeutige, wiedererkennbare> Daten anlegt;"
Und diese Werte (Zahlen, Beträge) dann in den Datensätzen wiederfinden - unter testen mit allen alten TP-Typen.

...da es dennoch Bereiche im Datensatz gibt die ich nicht ohne weiteres zuordnen kann.
Ohne Quellcode wird es immer Bereiche geben, bei denen man nur raten kann bzw. es wohl nie erkennen wird, z.B. Marker / Flags ...

Geändert von MeierZwoo (13. Nov 2013 um 13:04 Uhr)
  Mit Zitat antworten Zitat
einseins

Registriert seit: 12. Nov 2013
9 Beiträge
 
#17

AW: Datenstruktur erkennen Turbo Pascal Dos mit Toolbox(4)

  Alt 13. Nov 2013, 13:11
Es gibt eine interessante Info noch . Zu diesem Programm gibt es ein Handbuch wo man vieles erklärt bekommt . Als Beispiel kann man die Buchungsdatei exportieren (als Dbase ist aber ein optionales Modul gewesen ) Dort beschrieben sind folgende Datenfelder bei der Ausgabe angegeben . Wenn ich mir die Buchv4.6 ansehen sieht es fast wie diese Struktur aus .
Angehängte Dateien
Dateityp: pdf SCAN1098_000.pdf (72,1 KB, 31x aufgerufen)
  Mit Zitat antworten Zitat
MeierZwoo

Registriert seit: 3. Dez 2012
106 Beiträge
 
#18

AW: Datenstruktur erkennen Turbo Pascal Dos mit Toolbox(4)

  Alt 13. Nov 2013, 13:51
...und hoffentlich kein Comp
Wieso? Comp war (und ist) nach BCD der angesagteste Type für Geldbeträge, zumal die alten TP-Versionen über einen x87-Emulator verfügten.
  Mit Zitat antworten Zitat
OlafSt

Registriert seit: 2. Mär 2007
Ort: Hamburg
284 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#19

AW: Datenstruktur erkennen Turbo Pascal Dos mit Toolbox(4)

  Alt 14. Nov 2013, 10:52
Zu DOS-Zeiten waren Datentypen wie Comp oder Extended völlig unbekannt. Da wurde mit Real gearbeitet, dem emulierten 6-Byte-Float.

Ich stand selbst mal davor, so ein selbstgestricktes Datenformat von Turbo-Pascal DOS analysieren und konvertieren zu müssen. Einige Teile habe ich in den einzelnen Dateien wiedererkannt, aber es sind auch ebenso viele unbekannte Elemente da drin, die ein schnelles basteln eines Konverters schier unmöglich machen.

[Edit] Das PDF ist äußerst aufschlußreich, da ließe sich womöglich was mit Anfangen. Welche von den vielen einzelnen Files im RAR ist eine Buchungsdatei ?
  Mit Zitat antworten Zitat
MeierZwoo

Registriert seit: 3. Dez 2012
106 Beiträge
 
#20

AW: Datenstruktur erkennen Turbo Pascal Dos mit Toolbox(4)

  Alt 14. Nov 2013, 12:34
Zu DOS-Zeiten waren Datentypen wie Comp oder Extended völlig unbekannt.
Stimmt ja nun hinten und vorne nicht. Das TP 4.0 Handbuch (1987) weist Comp, Extended, Single, Double als x87 Typen aus - dafür gab es, wie oben schon gesagt, auch den x87 Emulator, wenn kein x87 als Hardware vorhanden war (bis incl. i386 war eine CoCPU zusätzlich nötig, ab i486 war die CoCPU in der CPU integriert).

Ich bin zu faul in den Keller zu gehen, um in noch älteren Handbüchern deswegen nachzuschlagen, 1987 sollte als "alt" und "DOS-Zeiten" reichen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 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