![]() |
Re: Mathe mit Strings (die deutsche StringMatheLib ._. )
Moin Stefan,
da ist glaub ich ein Fehler drinne: Zitat:
Also etwas wie sowas:
Delphi-Quellcode:
function TMathe.ZahlNBereinigen(const ZahlN, BasisN: string): string;
//Zahl-String zur Basis N von allen Zeichen bereinigen, die nicht zwischen // '0' und Chr(N) liegen var ZahlN_: string; i, Ziffer, BasisInt, StartZeichen : Integer; begin ZahlN_:=Uppercase(ZahlN); if Ord(a[1]) in [Ord('+'), Ord('-')] then StartZeichen := 2 else StartZeichen := 1; BasisInt := StrToInt(BasisN); // Rückwärtige Schleife, da der String hinter der aktuellen Position // verkürzt wird for i := Length(ZahlN_) downto StartZeichen do begin Ziffer := _GetZahl(ZahlN_[i]); if (Ziffer < 0) or (Ziffer >= BasisInt) then Delete(ZahlN_, i, 1); end; Result:=ZahlN_; end; Zitat:
Abgesehen davon müsste es eigentlich statt "a[Length(a)]" nur "a[1]" heißen. MfG xZise |
AW: Mathe mit Strings (die deutsche StringMatheLib ._. )
Hallo himitsu,
über die Festtage habe ich mir Deinen MatheParser angeguckt und finde ihn sehr gelungen. Bei kleinen Test ist mir aufgefallen, dass das Potenzieren mit "^" nicht so richtig funktioniert. Zum einem muß wohl in
Delphi-Quellcode:
der Operator von #^ zu ^ verändert werden.
Constructor TMatheParserF.Create;
Zum anderen läuft er sich in
Delphi-Quellcode:
aber irgendwie fest. Die Loop-Schleife findet scheinbar irgenwie keinen Ausstieg. Vielleicht muß diese '1' normalisiert werden?
Function TMathe.Potenz
In dem Demo5 tritt der Fehler nicht auf. Gibt es schon eine Korrektur? Gruss Jens |
AW: Mathe mit Strings (die deutsche StringMatheLib ._. )
ICh weiß der Beitrag ist schon alt aber ich ärgere mich seit gestern mit einem Problem und diese unit hier hat das gleiche Problem.
Kann mir bitte jemand erklären warum matheparser anscheinend ein Problem hiermit haben: (25-20-4) Ergebnis ist dann 6 Aber warum?? Gebe ich das so in den Windowsrechner ein kommt 1 raus. Andererseits kann Delphi aber dies richtig rechnen: (9*2/2-2)ebenso wie dies (5+3+1) dies kann er wieder nicht berechnen: (5-3-1) da bekommt er 3 raus. Kann mir das bitte jemand erklären? Danke! |
AW: Mathe mit Strings (die deutsche StringMatheLib ._. )
Zitat:
|
AW: Mathe mit Strings (die deutsche StringMatheLib ._. )
Beim einen Schritt stimmt es ab dem nächsten dann einfach nicht mehr. Das lässt sich nicht debuggen. Hat auch nicht unbedingt was mit dieser Lib zu tun, scheint eher ein grundsätzliches Problem zu sein. Vlt. antwortet noch jemand der das erklären kann.
|
AW: Mathe mit Strings (die deutsche StringMatheLib ._. )
Nach meinem Post habe ich mich länger mit Mathparsern, die es in der Delphi-Welt gibt, beschäftigt. Es gibt von diesen ca. 1 Mio., aber keinen der richtig funktioniert. Das kommt wahrscheinlich daher, dass alle heiß sind sich daran zu probieren dann aber nicht zu Ende gebracht werden.
Gefunden habe ich 2 Parser, die etwas taugen: ![]() ![]() Wobei -man glaubt es kaum- der Parser aus Cindy ca. 30% schneller ist als der Parser10, der als schnell gilt. |
AW: Mathe mit Strings (die deutsche StringMatheLib ._. )
Zitat:
|
AW: Mathe mit Strings (die deutsche StringMatheLib ._. )
Vielleicht ein F8 statt F7 Problem ...
|
AW: Mathe mit Strings (die deutsche StringMatheLib ._. )
@Jens01,
vielen Dank für die Empfehlung des cymathparser!! Dieser funktioniert tatsächlich einwandfrei. Klasse! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 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 by Thomas Breitkreuz