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
Benutzerbild von himitsu
himitsu
Online

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

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.
Ein Therapeut entspricht 1024 Gigapeut.

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

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

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
 
#3

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
 
#4

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
einseins

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

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

  Alt 11. Dez 2013, 11:51
Hallo erst einmal vielen Dank an alle die mir so hilfreich Informationen zu meinen Problemen geliefert haben . Daten habe ich analysiert . Ich denke das vieles klar wird , jedoch gibt es eine wichtige Frage . Wie werden die Geldbeträge und Numerische Ausdrücke abgelegt . Ich komme da nicht weiter. Habe einfach mal das alte Programm genommen und zum Artikel verschieden Beträge angelegt und notiert.

Hier mal eine kleine Auswahl der 8 Byte welche für die Beträge zuständig sind
00008400 00000030 0,11€
00008701 0000005e 1,11€
00008b00 00000e0a 11,11€
00008e00 00009c2d 111,11€
0009100 00800359 1111,11€
00008400 000000b0 -0,11€

Hat eventuell einer eine Idee wie ich diese Beträge in eine Dezimalzahl wandeln kann . Am liebsten mit VB auch wenn wir hier in einem anderen Forum sind .

Vielen Dank
  Mit Zitat antworten Zitat
MeierZwoo

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

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

  Alt 11. Dez 2013, 12:35
Wie werden die Geldbeträge und Numerische Ausdrücke abgelegt.
Das ist ausschließlich vom Programmierer des ursprünglichen Programmes abhängig, welcher Datentyp benutzt wird (wurde).

Bei 8 Byte (64bit) gibt es die Möglichkeit double und comp. Bei beiden ist das Vorzeichen-Bit an der selben Stelle gespeichert. Danach kann dein +0,11 und -0,11 beides sein.

Ich weiß nicht, wie Du die Hex-Darstellung erzeugt hast. Aber es ist doch ganz einfach, den Datentyp zu bestimmen: Einfach die von dir angegebenen Werte in einer einfachen Routine (mit PASCAL!) einmal als Comp, einmal als double zu erzeugen und abzulegen, diese dann auf dieselbe Art in Hex umwandeln und zu vergleichen.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
10.113 Beiträge
 
Delphi 12 Athens
 
#7

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

  Alt 11. Dez 2013, 16:01
Bist du sicher, dass das echte 8 Byte sind? Soweit ich mich entsinne würde ich von Turbo Pascal eher einen Typ wie Real48 mit 6 Byte erwarten.

// EDIT:
An den Hex-Werten siehst du jedenfalls deutlich die Trennung in Mantisse und Exponent, da die Werte sich rechts und links der Nullen in der Mitte ändern. Und das achte Bit von rechts ist offenbar das Vorzeichen-Bit.
Sebastian Jänicke
AppCentral

Geändert von jaenicke (11. Dez 2013 um 16:05 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz