AGB  ·  Datenschutz  ·  Impressum  







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

Zahl umklappen lassen auf -Wert?

Ein Thema von Pseudemys Nelsoni · begonnen am 27. Dez 2004 · letzter Beitrag vom 27. Dez 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Zahl umklappen lassen auf -Wert?

  Alt 27. Dez 2004, 10:28
hi,

wenn ich eine zahl habe und Inc() benutze und das über den bereich gehen würde, würd es ja automatisch auf den höchsten negativen wert springen..... nun brauch ich eine funktion die genau DAMIT klar kommt. Z.B bekomme ich bei diesem hier:

showmessage(inttostr(strtoint('456165165465165464'))); ein EConvertError statt z.b ein en negativen wert... wie mache ich das das ich auch negative werte angezeigt bekomme ?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Zahl umklappen lassen auf -Wert?

  Alt 27. Dez 2004, 10:32
Hi,

ich weiss nicht, in wie fern das hilfreich für Dich ist, aber so geht es:

  ShowMessage(IntToStr(StrToInt64('456165165465165464'))); mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: Zahl umklappen lassen auf -Wert?

  Alt 27. Dez 2004, 10:38
hallo mirage,

danke für deine antwort, leider geht das nicht, bzw so sollte es nicht sein. Es geht darum das ein User einen string, der vom server in eine zahl umgewandelt werden soll. Sollte das Maximale eines Integers überschritten werden, soll der wert einfach umklappen (fängt bei - an).

Ich schreibe gerade einen Server und muss ein genaues abbild eines bereits vorhandenen (nicht meiner) Server machen.

Wenn ich an den fremden Server folgendes Sende:

Zitat:
irc.hempstar.net KILLS 2147483648 // << 1 Zahl über dem möglichen!
Sendet mir der Server als Antwort:

Zitat:
:irc.hempstar.net 311 pseudemys -2147483648

^^^^den überschlagenen wert.

genau so muss ich das auch machen, nur wie?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#4

Re: Zahl umklappen lassen auf -Wert?

  Alt 27. Dez 2004, 11:18
du machst aus dem int nen string, also max-wert und jetziger wert

beides in nen string.
bei beiden soviele nullen vorne einfügen bis er 15 stellen lang ist oder so...

vergleichen

wenn größer, dann ein '-' davor

oder so in etwa
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#5

Re: Zahl umklappen lassen auf -Wert?

  Alt 27. Dez 2004, 12:58
hallo glk,

hm, das muss auch einfacher gehen, also ohne das in einen string umzuwandeln. Inc() tut ja genau das was ich eigentlich möchte, nur kann ich ja hier kein Inc() verwenden da ich ja nur einen wert "nehme" und ihn nicht inkrementiere
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#6

Re: Zahl umklappen lassen auf -Wert?

  Alt 27. Dez 2004, 13:00
wozu brauchst du da inc()???
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Urba

Registriert seit: 8. Dez 2002
Ort: Ketsch
120 Beiträge
 
Delphi 6 Personal
 
#7

Re: Zahl umklappen lassen auf -Wert?

  Alt 27. Dez 2004, 13:04
Hallo,

Vielleicht so ...

Delphi-Quellcode:
var Zahl : Integer;

if Zahl > MaxInt then Zahl := -Zahl
Gruss
Urba
Es gibt keine blöden Fragen, nur blöde Antworten
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#8

Re: Zahl umklappen lassen auf -Wert?

  Alt 27. Dez 2004, 13:05
ich hab ja gesagt das inc() hier keinen sinn macht.

mach mal folgendes:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  i := 2147483647;
  inc(i);
  showmessage(inttostr(i));
end;
^^^da tut inc genau das was ich eigentlich möchte, es klappt den wert um wenn er über 2147483647 ist.

so wenn ich nun einen string umwandeln möchte der die zahl "2147483648" enthält gibts nen convert error... naja ich möchte dann halt -2147483648 bekommen und keinen fehler...



@Urba: Ein wert kann ja auch mehrmals umklappen je nachdem wieviel mal er grösser ist, also muss das ergebniss nicht unbedingt ein negativer wert sein, also klappt das auch nicht
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#9

Re: Zahl umklappen lassen auf -Wert?

  Alt 27. Dez 2004, 13:11
Wenn's nur um den EConvertError geht, gibt's auch die Funktion StrToIntDef, mit der du einen Default-Wert zurückgeben kannst, wenn ein Fehler auftritt.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#10

Re: Zahl umklappen lassen auf -Wert?

  Alt 27. Dez 2004, 13:22
StrToIntDef gibt aber 0 zurück wenn der übergebene string über dem wertebereich eines integers liegt, statt ihn umzuklappen
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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