Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Taschenrechner - String durchsuchen (https://www.delphipraxis.net/148363-taschenrechner-string-durchsuchen.html)

Speedi2000 28. Feb 2010 16:15

Re: Taschenrechner - String durchsuchen
 
ah ok inttostr() ^^
Danke, jetzt gibt er z.B. 6 zurück, und weiter? :)

DeddyH 28. Feb 2010 16:17

Re: Taschenrechner - String durchsuchen
 
Jetzt hast Du die Position, die Du im Copy()-Befehl angeben kannst ;)

Speedi2000 28. Feb 2010 16:20

Re: Taschenrechner - String durchsuchen
 
kenn den copy befehl noch net, danke ^^

//Edit: wie mach ich das denn dass er bis zum nächsten Zeichen und dem Zeichen davor macht?

Speedi2000 28. Feb 2010 17:54

Re: Taschenrechner - String durchsuchen
 
Hmm komm echt noch nicht wirklich mit klar, wie krieg ich es hin dass er es bis zum nächsten Zeichen nur ausliest bzw halt zu dem zeichen davor?

DeddyH 28. Feb 2010 17:58

Re: Taschenrechner - String durchsuchen
 
Der Copy()-Befehl hat 3 Parameter: den Ausgangsstring, Startposition in diesem und die Länge (nicht die Position), bis zu der kopiert werden soll. Bsp.:
Delphi-Quellcode:
SubString := Copy(Ausgangsstring,1,5);
Damit werden ab Position 1 5 Zeichen kopiert und in Substring zurückgegeben.

Ist doch eigentlich verständlich, wo hängt es denn?

Speedi2000 28. Feb 2010 18:13

Re: Taschenrechner - String durchsuchen
 
Ja die Copy funktion hab ich ja jetzt verstanden.

Es hängt halt da wie ich es realisieren soll dass er zB aus
4-2*2+11-5

mit

neu.caption := inttostr(pos('+',term.caption));

nur das 2+1 rausziehe.

Weil bei copy muss ich ja denn ne gewisse Länge angeben.

und es muss ja irgendwie sowas wie count() geben um die anzahl der Zeichen bis zum nächsten Operator (in dem Fall halt das -) auslesen zu können.

Danke :)

Delphi-Narr 28. Feb 2010 20:45

Re: Taschenrechner - String durchsuchen
 
Hallo, ich habe das auch mal für die Schule gemacht.
Hier ein Thread dazu

Hier wird der Term in Rechenzeichen und Zahlen zerteilt und in eine Liste geschrieben:


aus

12*2+3/2

wird dann

12
*
2
+
3
/
2

Dann wird diese Liste nach * und / durchsucht und die Zahlen davor und danach werden entsprechend ausgerechnet.

In Zeile 2 gefunden : *

Also 12*2 = 24

Liste sieht wie folgt aus:

24+3/2

Das macht man so lange, bis keine * und / mehr da sind, und macht das Ganze mit + und - .
Wenn auch die alle weg sind, also alles ausgerechnet wurde, nimmt ,man dann die erste Zeile als Ergebnis.

Liebe Grüße!

himitsu 28. Feb 2010 20:48

Re: Taschenrechner - String durchsuchen
 
So als Tipp (weil ich grad keine Lust/Zeit hab alles nochmals zu sagen:

Such mal hier im Forum nach Matheparsern, denn es gibt da schon einige Threads, wo alles Nötige erklärt wird.

z.B.: http://www.delphipraxis.net/internal...t.php?t=165053

[edit]
toll, da ist mir ja 'ne gewisse Person zuvorgekommen :lol:

Speedi2000 28. Feb 2010 21:29

Re: Taschenrechner - String durchsuchen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe die letzten Stunden mal ein bisschen probiert und steh nun vor einem Fehler, der mir völlig unlogisch erscheint.

Habe das Programm mal angehangen, wäre lieb, wenn das mal jemand durchgucken könnte.

Die Fehlermeldung kommt z.B. wenn man 5+5+5+5-5 eingibt.↲↲Ah habe meinen fehler denke ich gefunden. Nämlich, dass er die zweite schleife noch nach der ersten abarbeitet. Gibt es sowas wie ne die-funktion wie in php auch in delphi?

himitsu 1. Mär 2010 06:09

Re: Taschenrechner - String durchsuchen
 
"Die" dürte einer Exception entsprechen:

Delphi-Quellcode:
raise Exception.Create('hier die Fehlerbeschreibung');


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr.
Seite 2 von 4     12 34      

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