Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TBignum (https://www.delphipraxis.net/53354-tbignum.html)

Alexander Roth 14. Sep 2005 18:54


TBignum
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Leute,

ich steh mal wieder vor einem Problem.

ich will in einem Programm, dass mit großen Zahlen rechnen soll, die Unit TBignum verwenden.
Einbinden klappt mit:

Delphi-Quellcode:
uses UniTBigNum;
Ich kann auch auf die Variable 'werte' zugreifen und wieder auslesen. Doch sobald ich von einem String eine Zahl einlesen will mit der
Delphi-Quellcode:
Procedure TBigNum.FromString(var SString: AnsiString);
also
Delphi-Quellcode:
big1.FromString('1000');
Meldet er den Fehler:
Unit1.pas(94): E2197 Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden.

Irgend einen dummen kleinen fehler mach ich falsch. (Es ist übrigens nicht der, dass ich vergessen hätte big1 zu konstruieren (create)).

Wäre sehr nett von euch wenn ihr mir an einem Beispiel zeigt, wie man mit einer String-Zahl und TBignum eine Rechenoperation ausführt.

Danke an alle im Voraus!


PS: Irgendwie lassen sich die Buttons nicht anklicken um die Formatierung für den Quellcode auszuwählen

TBignum ist im Anhang

[edit=alcaeus]Delphi-Tags korrigiert :) Mfg, alcaeus[/edit]

shmia 14. Sep 2005 19:15

Re: TBignum
 
Delphi-Quellcode:
// Falsch
procedure TBigNum.FromString(var SString: AnsiString);

// Richtig: Ansistring werden sowieso als Zeiger übergeben
procedure TBigNum.FromString(const SString: AnsiString);

// Falsch
   if Pos(',',SString) = 0 then begin
// Richtig: es gibt auch Leute, die mit Punkt arbeiten wollen
   if Pos(DecimalSeparator, SString) = 0 then begin

Alexander Roth 15. Sep 2005 17:29

Re: TBignum
 
Nur um sicher zu gehen: Du meinst ich soll in der Unit TBignum was rumändern?

Könntest du mir genau ein Beispiel geben, wie man hier was einliest?

alzaimar 15. Sep 2005 18:34

Re: TBignum
 
Die Unit mag funktionieren, hält sich aber an keinerlei Programmierkonventionen (Styleguides) von Delphi, was schade ist.
Du musst sogar die Unit, so wie von shmia beschrieben, ändern. Das reicht fürs Erste.

Wenn Du an der Unit nichts ändern willst (es gibt keinen Grund, es *nicht* zu tun), dann musst Du den String eben so übergeben:
Delphi-Quellcode:
Var
  s : String;

Begin
  s:='111111';
  MyBigNum.FromString (s);
End;

Alexander Roth 16. Sep 2005 15:32

Re: TBignum
 
Das hab ich schon so versucht. Doch rechnen kann man damit dann nicht.
Dann bringt er den fehler : Division durch Null

alzaimar 16. Sep 2005 15:50

Re: TBignum
 
Ich meine, irgendwo hier gelesen zu haben, das TBignum Schrott is... Jedenfalls sieht es so aus.

glkgereon 16. Sep 2005 15:54

Re: TBignum
 
nimm doch das DEC von Hagen Reddman (oder Redmann?)Edit: Der da unter mir ;)

such mal hier im forum nach "unendlich große zahlen" oder so

da stehen ein paar versionen zum download auf seite 5 glaub ich

negaH 16. Sep 2005 17:22

Re: TBignum
 
oder such auf SourceForge nach StreamSec II von Hendrik Hellström.

Gruß Hagen

Alexander Roth 11. Okt 2005 11:33

Re: TBignum
 
StreamSec II von Hendrik Hellström hab ich nicht gefunden. :gruebel:

DEC von Hagen Reddman verstehe ich beim besten Willen nicht wie das Funktioniert. :pale:

glkgereon 11. Okt 2005 11:49

Re: TBignum
 
Zitat:

Zitat von Alexander Roth
StreamSec II von Hendrik Hellström hab ich nicht gefunden. :gruebel:

DEC von Hagen Reddman verstehe ich beim besten Willen nicht wie das Funktioniert. :pale:

keine Sorge, das tuen ausser Hagen selber nur *SEHR* wenige Leute...

Ich nutze es obwohl ich keinen Plan hat wie es funktioniert...Ist schnell und funktioniert. Bis an die Grenzen des Rams (afaik)


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