AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

UInt64 Typ-Problem bei Vorgabewerten

Ein Thema von ma2xx · begonnen am 24. Apr 2009 · letzter Beitrag vom 24. Apr 2009
 
Benutzerbild von himitsu
himitsu

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

Re: UInt64 Typ-Problem bei Vorgabewerten

  Alt 24. Apr 2009, 11:30
Da bekomm ich erstmal folgenden Fehler bei Max und Min,
da es kein Max/Min für UInt64, in der Unit Math, gibt und er daher auf die nächst möglichen Datentyp für UInt64 ausweicht, also Double (da dort der Wertebereich reinpaßt).
Nja und da dann der Typ Double ist, kann er an Result(UInt64) nicht übergeben werden
Zitat:
[DCC Fehler] Project1.dpr(13): E2010 Inkompatible Typen: 'UInt64' und 'Extended'
PS: E=1 ist falsch ... denn so käme dieser String "0123a456" bei dir als "richtiger" Integer durch


soo, also in D2009 kompiliert dieses nun erfolgreich und ohne Compilermeldungen.
Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

uses SysUtils, Math;

function StrToU64(const S:String; aDefault:UInt64=0; aMin:UInt64=Low(UInt64); aMax:UInt64=High(UInt64)): UInt64;
var E: Integer;
begin
  Val(S, Result, E);
  if E <> 0 then Result := aDefault
  else if Result < aMin then Result := aMin
  else if Result > aMax then Result := aMax;
end;

var MyU64: UInt64;

begin
  MyU64 := StrToU64('123');
  if MyU64 = 0 then ;
end.
[add]
hab grad aber etwas bemerkt ... Val funktioniert nicht

begin
MyU64 := StrToU64('18446744073709551615');
if MyU64 = 0 then ;
end.[/delphi]
hier liefert er statt 18446744073709551615 (MaxUInt64) nur 1844674407370955161 und meckert an der letzen Stelle rum ... ich fürchte da hat sich auch ein Int64 in Val eingeschlichen

aber MyU64 := StrToU64('$FFFFFFFFFFFFFFFF'); funktioniert perfekt ... also hab ich schon richtig gleich von Haus aus in meiner XML-Klasse richtig gemacht, da alles außerhalb Int64 nach Hex konvertiert wird
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 


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 02:02 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