![]() |
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 |
AW: RedProcessMemory Probleme mit DatenTyp
E39 (Exponent 39) ist jedenfalls sehr weit weg von der 0.
-E39 wäre nah dran. ![]() ![]() ![]() Es gibt auch verschiedene Konstanten, um den Wertebereich zu prüfen.
Delphi-Quellcode:
oder
if (f > MaxInt) or (f < MinInt) then PasstNichtInEinenInteger;
Delphi-Quellcode:
if not InRange(f, MinInt, MaxInt) then PasstNichtInEinenInteger;
|
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 23:06 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