Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi mit NodeText rechnen ... (https://www.delphipraxis.net/55582-mit-nodetext-rechnen.html)

netfalcon13 23. Okt 2005 16:38


mit NodeText rechnen ...
 
Huhu!
Ich habe es geschafft verschiedene Infos aus einer Xml datei zu lesen.
Nun bekomme ich aus einer

Delphi-Quellcode:

var XMLDoc: IXMLDomDocument2;
 n5: IXMLDOmNodeList;
  test : integer;
begin
[...]

     n5 := xmldoc.selectNodes('system/information/@platz');
 edit1.Text := (n5.item[0].text);
test := StrtoInt( (n5.item[0].text));
Edit1 zeigt mir nun an : 2258182020

Nun will cih diese Bytezahl natürlich formatieren, und will sie in einen Interger umwandeln aber ich bekommen andauernd die meldung

2258182020 ist kein gültiger integerwert. bin am verzweifeln, wie soll ich das denn sonst machen ?

vielleicht weiss jemand wodran das hier scheitert...

Der_Unwissende 23. Okt 2005 16:50

Re: mit NodeText rechnen ...
 
Hi,

es scheiter daran, dass StrToInt halt jeden Zahlenwert in ein Integer umwandeln möchte. Dein Problem ist, dass ein Integer nicht größer sein kann als 2^31 - 1 (ca 2,1 mrd.). Du brauchst also was größeres, versuch es mal mit StrToInt64 und test entsprechend als int 64 wählen. Sollte dann jede Zahl bis 2^63 - 1 konvertieren können (zahlen bis 9223372036854775807)

Gruß Der Unwissende

ripper8472 23. Okt 2005 16:56

Re: mit NodeText rechnen ...
 
ein cardinal (unsigned 32 bit) sollte aber schon reichen...

Der_Unwissende 23. Okt 2005 16:58

Re: mit NodeText rechnen ...
 
Ach bevor ich es vergesse, muss das XML-Document gegen irgendein Schema / DTD (äh, hießen die so, XML-Schema is eh besser) valide sein? Da musst du dann nämlich auch aufpassen, dass deine Zahlen die du ausliest im definierten Bereich liegen (bzw. der der das XML-Dokument erstellt).

Zitat:

ein cardinal (unsigned 32 bit) sollte aber schon reichen...
Das ein Cardinal reichne sollte mag sein, aber es gibt kein StrToCardinal, oder? Muss ich gleich mal nachschauen. Na ja, falls du jedenfalls StrToInt64 benutzt solltest du auch ein Int64 benutzen oder casten um überraschungen zu vermeiden (und weils einfach sauber ist)

netfalcon13 23. Okt 2005 19:04

Re: mit NodeText rechnen ...
 
Uh danke jungs!

ich hatte es schon mit strtoint64 versucht bekam aber minuswerte raus (weil test oben noch immer als integer deklariert war)

mit einer falschen schlussfolgerung dachte ich mir: hey dann liegts am geladenen xml-dokument oder am auslese verfahren
:wall:

danke für eure hilfe...

StrtoCardinal hab ich übrigens auch gesucht aber ncihts entsprechendes gefunden...


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