![]() |
787454545454545645454544 ist kein gültiger integerwert
egal was ich mache ich bekomm Obenstehende Fehlermeldung (Titel)
mein Code
Delphi-Quellcode:
var
s : String; begin s:=Edit1.Text+Edit2.Text+Edit7.Text+Edit5.Text; s := InttoStr(StrtoInt64(s) mod 45); |
Re: 787454545454545645454544 ist kein gültiger integerwert
Die Zahl ist halt zu groß für einen Integer
|
Re: 787454545454545645454544 ist kein gültiger integerwert
Int64 verwenden. ;-)
|
Re: 787454545454545645454544 ist kein gültiger integerwert
Moin Manuel,
Zitat:
|
Re: 787454545454545645454544 ist kein gültiger integerwert
hatte ich auch schon so etwa geht aber auch net
Delphi-Quellcode:
was kann ich noch tun
var
s : String; i : Int64; begin s:=Edit1.Text+Edit2.Text+Edit7.Text+Edit5.Text; i := StrToInt64(s) |
Re: 787454545454545645454544 ist kein gültiger integerwert
Was willst du denn mit so'ner Zahl machen?
|
Re: 787454545454545645454544 ist kein gültiger integerwert
Dir zahl ist zu groß für einen normalen Integer.
-BigInt -VLI |
Re: 787454545454545645454544 ist kein gültiger integerwert
// Murks
|
Re: 787454545454545645454544 ist kein gültiger integerwert
|
Re: 787454545454545645454544 ist kein gültiger integerwert
Zitat:
(a + b) mod x = ((a mod x) + (b mod x)) mod x |
Re: 787454545454545645454544 ist kein gültiger integerwert
@dax: Du weisst schon, dass wenn man Strings 'addiert', diese aneinandergekettet werden, oder? Insofern ist Deine Formel zwar allgemein hilfreich, im konkreten Fall jedoch Unsinn.
('5'+'6') mod 4=56 mod 4 = 0 ((5 mod 4)+(6 mod 4)) mod 4= (1+2) mod 4=3 |
Re: 787454545454545645454544 ist kein gültiger integerwert
Zitat:
|
Re: 787454545454545645454544 ist kein gültiger integerwert
Hi, :-D
also ich habe jetzt auch ähnliches Problem. Wie kann man solche Zahl wie hier: ‘787454545454545645454544‘ auf irgendwelche Integer Zahl umwandeln (ähnlich wie StrToInt64)? Muchacho |
Re: 787454545454545645454544 ist kein gültiger integerwert
Auf Integer, wie hier schon gesagt wurde, überhaupt nicht. Mit den 32 Bit eines Integers (bzw. Cardinals) kommst du schlicht nicht über 2^32-1 = 4.294.967.295. Auch Int64 ist begrenzt, und zwar eben bei 2^64-1 = 18.446.744.073.709.551.615
Sobald du da drüber liegst, kommst du um die Verwendung externe BigNum-Libraries nicht mehr herum, weil das nativ a) kein Prozessor und b) kein Compiler unterstützt. (Seit wann ist Dax eigentlich ganz weg!? :shock:) |
Re: 787454545454545645454544 ist kein gültiger integerwert
Die Antwort ist doch schon hier im Thread drin:
Zitat:
|
Re: 787454545454545645454544 ist kein gültiger integerwert
Hi Medium, 8-)
nun bin ich bei diesen Berechnungen nicht besonders stark. :oops: Vielleicht kennst Du mir bisschen helfen? :wall: Wenn ich also solche Zahl modulo 49 teilen möchte wie kann ich das machen? Mich interessiert nur das Ergebnis mit mod 49 Muchacho |
Re: 787454545454545645454544 ist kein gültiger integerwert
Zitat:
|
Re: 787454545454545645454544 ist kein gültiger integerwert
Es gibt im LazarusForum ein Projekt, ich meine das kann auch mit Großen Zahlen umgehen:
![]() Op das jetzt auch unter Delphi läuft weiß ich nicht genau. Vielleicht hilft es dir ja, wenn du dort in den Soruce-Code schaust... Ich habe hier auch schon ein Unit gesehen irgendwie mit den Namen BigInt oder so... ![]() z.b. sieht da nach aus. oder auch hier: ![]() |
Re: 787454545454545645454544 ist kein gültiger integerwert
Zitat:
|
Re: 787454545454545645454544 ist kein gültiger integerwert
Hi Alzaimar :-D
Ich habe zuerst gedacht, dass dies eine leichte Angelegenheit ist. Leider komme ich überhaupt nicht weiter (auch mit Links von Michael). Bin erstaunt, da solche Zahlen werden auch z.B. bei IBAN Berechnungen erzeugt und anschließend mit modulo 97 behandelt, also offensichtlich keine Zauberei. Muchacho |
Re: 787454545454545645454544 ist kein gültiger integerwert
Warum kommst du da nicht weiter?
Der letzte Link vom Michael, ist doch voller Informationen und vieler Links zu dp-externen Big-Num-Libraries. Dabei haben wir sogar mehrere Libs hier in der DP. 'ne "Einfache" hab sogar ich zu bieten ![]() |
Re: 787454545454545645454544 ist kein gültiger integerwert
Nun bin ich einem Link von Michael mit BigInt (Jahrgang 2003) gefolgt und implementiert (ohne Fehler).
Jetzt wollte ich mit dieser wunder Unit rechnen und siehe da: Exception ohne Ende. Schade Danke Himitsu, aber leider weiß ich mit Dateien *. 7z nichts anzufangen. Können Deine Units überhaupt mein Problem lösen? Habe auch Fragen in anderen Foren gesehen mit gleichem Ergebnis wie diese hier: Nichts Falls irgendjemand etwas für mich hätte wäre ich sehr dankbar Muchacho |
Re: 787454545454545645454544 ist kein gültiger integerwert
*.7z ist ein Packformat was mit dem 7zip Entpackt werden kann. Das ist ein Kostenlosen Tool was es für Windows und Linux gibt.
![]() Poste doch mal den Code, wie du es gemacht hast.... |
Re: 787454545454545645454544 ist kein gültiger integerwert
Michael, :-D
danke für Dein Interesse. Habe natürlich alles richtig gemacht. Die besagte Units ist bei einer interner Routine mit Zugriffsverletzung zusammengebrochen (habe im Source nachverfolgt). Jetzt überlege ich die ganze Zeit wie kann ich solche Zahl (eher STRING) durch eine Zahl wie 49 dividieren (MOD). Vielleicht lässt sich so was auf kleinere Schritte verteilen (z.B. String teilen). Ich weiß noch nicht, aber irgendwie muss ich es schaffen. Muchacho |
Re: 787454545454545645454544 ist kein gültiger integerwert
Es wird höchstwahrscheinlich eine Funktion in der Unit dafür geben. Such mal nach Dividieren in der Unit vielleicht auch Div oder Divi oder sowas....
|
Re: 787454545454545645454544 ist kein gültiger integerwert
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
(daduch ist sie zwar nicht die Schnellste im Rechnen, aber 0,0015 Sekunden sollte für dich wohl ausreichen)
Delphi-Quellcode:
Im Anhang ein Bild der Demo aus diesem Thread (diese hättest du auch ohne
Können Deine Units überhaupt mein Problem lösen?
![]() ![]() |
Re: 787454545454545645454544 ist kein gültiger integerwert
hahaha
Danke Himitsu, wolte gerade selbst was schreiben. :gruebel: Ich probiere es aus und sage hier Bescheid Muchacho |
Re: 787454545454545645454544 ist kein gültiger integerwert
Zitat:
Zitat:
Delphi-Quellcode:
[edit] Code verbessert [/edit]
Function Modulo (VerdammtGrosseZahl : String; Modulo : Integer) : Integer;
Var Zahl : Integer; i : integer; Begin Zahl := 0; for i:=1 to length (VerdammtGrosseZahl) do // Zahl := (Zahl*10 + Ord(VerdammtGrosseZahl[i]) - 10) mod Modulo; Zahl := (Zahl*10 + Ord(VerdammtGrosseZahl[i]) - Ord('0')) mod Modulo; End; |
Re: 787454545454545645454544 ist kein gültiger integerwert
Hi Alzaimar :-D
In Deiner Funktion ist noch etwas nicht in Ordnung: '700901001234567890131400' mod 97 muss gleich 90 sein Muchacho |
Re: 787454545454545645454544 ist kein gültiger integerwert
@alzaimar: meinst du nicht -Ord('0') statt -10 ?
![]() |
Re: 787454545454545645454544 ist kein gültiger integerwert
hahaha Alzaimar :-D
Du bist genial :-D Wie Himitsu meint -Ord('0') ist richtig (DANKE Dir auch !!!) Hurrrrrrrrrrrrrrrrrra :dancer: Muchacho |
Re: 787454545454545645454544 ist kein gültiger integerwert
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 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