Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi 787454545454545645454544 ist kein gültiger integerwert (https://www.delphipraxis.net/105307-787454545454545645454544-ist-kein-gueltiger-integerwert.html)

himitsu 13. Dez 2009 17:30

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
http://www.delphipraxis.net/internal...t.php?t=159592

Muchacho 13. Dez 2009 18:31

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

mimi 13. Dez 2009 18:44

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.
http://www.7-zip.org/

Poste doch mal den Code, wie du es gemacht hast....

Muchacho 13. Dez 2009 18:52

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

mimi 13. Dez 2009 19:03

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....

himitsu 13. Dez 2009 19:06

Re: 787454545454545645454544 ist kein gültiger integerwert
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Muchacho
Jetzt überlege ich die ganze Zeit wie kann ich solche Zahl (eher STRING) durch eine Zahl wie 49 dividieren (MOD).

Meine Lib rechnet nur mit "Strings" ... drum auch der Name.
(daduch ist sie zwar nicht die Schnellste im Rechnen, aber 0,0015 Sekunden sollte für dich wohl ausreichen)

Delphi-Quellcode:
Können Deine Units überhaupt mein Problem lösen?
Im Anhang ein Bild der Demo aus diesem Thread (diese hättest du auch ohne Bei Google suchen7ZipBei Google suchen7z testen können)

Muchacho 13. Dez 2009 19:10

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

alzaimar 13. Dez 2009 19:14

Re: 787454545454545645454544 ist kein gültiger integerwert
 
Zitat:

Zitat von Muchacho
Bin erstaunt, da solche Zahlen werden auch z.B. bei IBAN Berechnungen erzeugt
und anschließend mit modulo 97 behandelt, also offensichtlich keine Zauberei.

Zitat:

Zitat von Dax
(a + b) mod x = ((a mod x) + (b mod x)) mod x

Dann geht das ohne große Zahlen.
Delphi-Quellcode:
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;
[edit] Code verbessert [/edit]

Muchacho 13. Dez 2009 19:27

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

himitsu 13. Dez 2009 19:33

Re: 787454545454545645454544 ist kein gültiger integerwert
 
@alzaimar: meinst du nicht -Ord('0') statt -10 ?


http://www.delphitricks.com/source-c...e_an_iban.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 Uhr.
Seite 3 von 4     123 4      

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