Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   RedProcessMemory Probleme mit DatenTyp (https://www.delphipraxis.net/182443-redprocessmemory-probleme-mit-datentyp.html)

sonny2007 24. Okt 2014 14:42

RedProcessMemory Probleme mit DatenTyp
 
Hi Delphianer,

stehe mal wieder vor einem kleinen Problem.

Ich lese ein Float ( single ) mit ReadProcessmemory aus einer mir bekannten Speicheradresse.
Anhand dieses Wert prüfe ich ob eine gewisse Bedingung erfüllt ist.

Das Problem:

Dieser Wert erhält unter ganz seltenen Umständen solche Werte.
2.453454534E39

Wie kann ich als single prüfen ob dieser Wert 0 oder nahe Null ist ?

Folgendes passiert.

Ich habe bspw. die MaxHp von einem Gegner. Diese beträgt 12345.

Diese wird mit Trunc in ein Integer gewandelt und weiter verwendet.
Ich prüfe mit isValue = 0 ob Gegner erledigt.

Das trifft auch 99,9% der Fälle zu. Doch es kommt halt in ganz selten Fällen zu diesen Fehler.
Denn in Int64 passt der Wert natürlich nicht und es wird eine Exception geworfen.

Ich möchte es nicht unbedingt mit einem Try except Block lösen.

Gibt es also eine Möglichkeit wie ich das Problem lösen kann?

Grüße
s0n

himitsu 24. Okt 2014 14:50

AW: RedProcessMemory Probleme mit DatenTyp
 
E39 (Exponent 39) ist jedenfalls sehr weit weg von der 0.
-E39 wäre nah dran.

Delphi-Referenz durchsuchenCompareValue, Delphi-Referenz durchsuchenSameValue, Delphi-Referenz durchsuchenIsZero, ...

Es gibt auch verschiedene Konstanten, um den Wertebereich zu prüfen.
Delphi-Quellcode:
if (f > MaxInt) or (f < MinInt) then PasstNichtInEinenInteger;
oder
Delphi-Quellcode:
if not InRange(f, MinInt, MaxInt) then PasstNichtInEinenInteger;

sonny2007 24. Okt 2014 17:27

AW: RedProcessMemory Probleme mit DatenTyp
 
Ich danke dir für die schnelle Antwort.
Werde es heute Abend testen.

Grüße
s0n


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 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