AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Erste Versuche zu Parsen um mit String zu rechnen
Thema durchsuchen
Ansicht
Themen-Optionen

Erste Versuche zu Parsen um mit String zu rechnen

Ein Thema von MarquiseDeSade · begonnen am 8. Jun 2007 · letzter Beitrag vom 10. Jun 2007
 
Benutzerbild von MarquiseDeSade
MarquiseDeSade

Registriert seit: 18. Apr 2007
Ort: Mainz
55 Beiträge
 
Turbo Delphi für Win32
 
#1

Erste Versuche zu Parsen um mit String zu rechnen

  Alt 8. Jun 2007, 15:41
Hallo DP´ler

Eine kurze Beschreibung was ich mir Überlegt habe. Ich möchte einen Taschenrechner so programmieren, dass der User durch klicken auf Buttons willkürliche Rechnungen durchführen kann.

Zum Beispiel:
2+22+4-258*635/741 (Die Eingabe erfolgt über Buttons, sowohl die Zahlen als auch Operatoren)

Nun besteht ja das Problem Punkt vor Strich.

Mein Ansatz:

Delphi-Quellcode:
var
  Form1: TForm1;

  speicher :string;
  plus,minus,mal,geteilt :integer;

...
...
...

{Button für die Rechenarten}
{-----------------------------------------------------------}
procedure TForm1.Button_plusClick(Sender: TObject);

begin
  speicher:=speicher+edit1.text+'+';
  edit1.Text:='';
end;
procedure TForm1.Button_minusClick(Sender: TObject);
begin
  speicher:=speicher+edit1.text+'-';
  edit1.Text:='';
end;
procedure TForm1.Button_malClick(Sender: TObject);

begin
  speicher:=speicher+edit1.text+'*';
  edit1.Text:='';
end;
procedure TForm1.Button_geteiltClick(Sender: TObject);
begin
  speicher:=speicher+edit1.text+'/';
  edit1.Text:='';
end;
{-----------------------------------------------------------}

...
...
...
procedure TForm1.Button_gleichClick(Sender: TObject);

begin
speicher:=speicher+edit1.text;

//Übergabe der Position des Zeichens im String
plus:=pos('+',speicher);
minus:=pos('-',speicher);
mal:=pos('*',speicher);
geteilt:=pos('/',speicher);
Nun zu meinen Problemen:
Ich habe leider erst sehr wenige Grundkenntnisse und ich komme hier nicht weiter. Eigentlich habe ich vor, den String bis zu den jeweiligen Operatoren zu zerlegen und ihn als Integer einer Variable zu übergeben. Pos liefert mir aber nur das erste übereinstimmende Zeichen wieder. Wie löse ich also das Problem, wenn in einem String mehrere Plus-Zeichen auftauchen.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:38 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