AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Fehler in MP_Real.mpf_tohex_n(..) von Wolfgang Ehrhardt (= Gammatester)

Fehler in MP_Real.mpf_tohex_n(..) von Wolfgang Ehrhardt (= Gammatester)

Ein Thema von Andreas13 · begonnen am 26. Apr 2021 · letzter Beitrag vom 26. Apr 2021
Antwort Antwort
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
709 Beiträge
 
Delphi XE5 Professional
 
#1

Fehler in MP_Real.mpf_tohex_n(..) von Wolfgang Ehrhardt (= Gammatester)

  Alt 26. Apr 2021, 00:19
Hallo Community,
arbeitet jemand von Euch mit der Routine MP_Real.mpf_tohex_n(…) von Wolfgang Ehrhardt (= Gammatester)?

Es ist etwas fehlerhaft dabei, weil bei der Konvertierung einer mp_float-Zahl in einen Hexadezimal-String unerklärliche Access Violation’s in der Zeile
pstr^ := #0; innerhalb der Procedure s_mpf_toradix_n(..) auftreten.
Kennt jemand vielleicht eine Abhilfe?

Danke im Voraus!
Gruß, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
709 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Fehler in MP_Real.mpf_tohex_n(..) von Wolfgang Ehrhardt (= Gammatester)

  Alt 26. Apr 2021, 20:11
Hallo,
ich habe für die Demonstration der Benutzung der fehlerhaften Routine MP_Real.mpf_tohex_n(...) ein kleines Konsolen-Testprogramm MPF_ToHex_n_1.dpr erstellt. Hier befindet sich zur Kontrolle auch eine eigene Funktion Dezimal_To_Hex(...), die Multipräzisions-Fließkommazahlen beliebiger Stellenzahl korrekt in einen Hexadezimal-String umrechnet.
Im Programm ist die Stelle markiert, wo ein "Access violation" auftritt.

Wegen des komplexen Zusammenspiels zahlreicher Units und *.inc habe ich auch noch 11 weitere benötigte Original-Files von Gammatester beigefügt. Sollten evtl. weitere Files fehlen, diese sind zu finden unter:

https://github.com/moe123/www.wolfgang-ehrhardt.de

Obwohl meine Function Dezimal_To_Hex(...) die Routine MP_Real.mpf_tohex_n(...) ersetzt, wäre ich an der Lösung des Problems trotzdem sehr interessiert, da die fehlerverursachende innere Procedure s_mpf_toradix_n(...) in Gammatester’s Bibliotheken an zahlreichen weiteren Stellen intern verwendet wird.

Danke für Eure Hilfe und kritischen Bemerkungen!

Gruß, Andreas
PS: Zielplattform: Win 32 Bit

Anhang: MPF_ToHex_n - 1.zip
Angehängte Dateien
Dateityp: zip MPF_ToHex_n - 1.zip (219,4 KB, 3x aufgerufen)
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)

Geändert von Andreas13 (26. Apr 2021 um 20:15 Uhr)
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
709 Beiträge
 
Delphi XE5 Professional
 
#3

AW: Fehler in MP_Real.mpf_tohex_n(..) von Wolfgang Ehrhardt (= Gammatester)

  Alt 26. Apr 2021, 22:03
Sebastian Jaenicke hat die Lösung geliefert:
Zitat:
Da du PSt nicht initialisierst, aber angibst, dass an diese Speicherstelle (nil!!) 200 Zeichen hinein passen, kann das nicht gehen...
So geht es z.B.:
Delphi-Quellcode:
SetLength(ASt, 200);
MP_Real.mpf_tohex_n(Wert_Global, 100, PAnsiChar(ASt), 200);
WriteLn('MP_Real.mpf_tohex_n(Wert_Global, 100, PSt, 200); = ', ASt);
Vielen Dank, Sebastian!
Vor lauter Bäumen sehe ich den Wald nicht mehr...
Gruß, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:32 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