BCD Arithmetik
-
- Beiträge: 463
- Registriert: Do 8. Jun 2017, 18:21
- OS, Lazarus, FPC: Windows 10 64bit, Lazarus 3.6, FPC 3.2.2
- CPU-Target: 64Bit
- Wohnort: Wien
BCD Arithmetik
Es gibt eine Unit BCD, und ich hatte gehofft, dass ich mit Hilfe der Unit die Turbo Pascal 3 BCDReals relativ leicht lesen und bearbeiten kann (eigentlich brauche nur eine Konvertierung von und zum Typ String). Leider scheint das überhaupt nicht zu funktionieren bzw. blicke ich nicht durch, wie ich diese Unit verwenden muss, habe heute eine ganze Weile herumprobiert. Ich würde mir sehr gerne sparen, diese Konversion in beide Richtungen von Hand auszuprogrammieren, und theoretisch sollte das ja mit Hilfe dieser Unit möglich sein (oder implementiert die ein BCD Format, das gar nicht mit dem alten Turbo Pascal 3 BCDREAL Typ kompatibel ist?).
Re: BCD Arithmetik
Es würde die Hilfe ungemein erleichtern, wenn Du beschreiben könntest, was du versucht hast und inwiefern es nicht funktioniert hat, idealerweise mit einem Programmfragment deines Versuchs und einem Beispielfall, welches Ergebnis du mit einem bestimmten Eingangswert erwartest...Leider scheint das überhaupt nicht zu funktionieren bzw. blicke ich nicht durch, wie ich diese Unit verwenden muss, habe heute eine ganze Weile herumprobiert.
-
- Beiträge: 463
- Registriert: Do 8. Jun 2017, 18:21
- OS, Lazarus, FPC: Windows 10 64bit, Lazarus 3.6, FPC 3.2.2
- CPU-Target: 64Bit
- Wohnort: Wien
Re: BCD Arithmetik
Nach ein paar ganz naiven ersten Versuchen (die natürlich fehlgeschlagen sind) habe ich mir die Unit etwas genauer angeschaut und festgestellt, dass das Datenformat, das die Unit verwendet, leider nicht mit dem Turbo Pascal BCD Format kompatibel ist. Nachdem ich ohnehin nur die Konversion von und nach einen String-Typ brauche, habe ich diese Konversionen jetzt doch ohne Verwendung einer fertigen Unit von Hand selbst zusammengebastelt - die Konversion vom und zum Format, das die BCD Unit verwendet, wäre nicht viel weniger Arbeit gewesen.


-
- Beiträge: 6955
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: BCD Arithmetik
Was willst du machen, ein TP Real in eine Binärwert umwandeln ?
Sagt dir Real48 etwas ?
Sagt dir Real48 etwas ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 463
- Registriert: Do 8. Jun 2017, 18:21
- OS, Lazarus, FPC: Windows 10 64bit, Lazarus 3.6, FPC 3.2.2
- CPU-Target: 64Bit
- Wohnort: Wien
Re: BCD Arithmetik
Die String Werte brauche ich in einem SQL String, nachdem ich vom Dos Programm den 10-Byte BCD Datenblock bekommen habe - und dann wieder zurück.
Es war weniger Aufwand als ich befüchtet habe, aber doch eine Menge Bitklauberei
Die fertigen Funktionen sind sehr kurz, gerade ca 10 und 20 Zeilen. Wenn ich nach Programmzeilen bezahlt würde, müsste ich jetzt weinen.
REAL48 kann nur einen 6 byte großen Binär-Realwert meinen, wir haben aber in unseren Programmen die BCD Variante von Turbo Pascal eingesetzt, die verwendet einen 10 Byte großen BCD Datenblock.
Es war weniger Aufwand als ich befüchtet habe, aber doch eine Menge Bitklauberei

Die fertigen Funktionen sind sehr kurz, gerade ca 10 und 20 Zeilen. Wenn ich nach Programmzeilen bezahlt würde, müsste ich jetzt weinen.
REAL48 kann nur einen 6 byte großen Binär-Realwert meinen, wir haben aber in unseren Programmen die BCD Variante von Turbo Pascal eingesetzt, die verwendet einen 10 Byte großen BCD Datenblock.