Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - StringRePlace Nicht genügend wirkliche Parameter


wayne123 - So 16.10.11 13:18
Titel: StringRePlace Nicht genügend wirkliche Parameter
Also ich möchte einen Taschenrechner programmieren, bei dem man eine komplette Rechnung in ein Edit Feld schreiben kann, welche dann,wenn man auf den Button klickt ausgerechnet wird. Ich weiß, dass das sehr wahrscheinlich nicht gerade der beste Weg ist es zu lösen, aber mir reicht es so. Ich bin gerade noch bei den Klammern, ich will die Klammern aus dem gesamten String rausnehmen, ausrechnen lassen und dann das Ergebnis wieder in den String reinbringen.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
 
Eingabe:=Edit1.Text;
  repeat
  begin
    PositionAnfangKlammer:=pos('(',Eingabe);
    PositionEndeKlammer:=pos(')',Eingabe);
    Klammern:= Copy(Eingabe,PositionAnfangKlammer,PositionEndeKlammer-PositionAnfangKlammer+1);
    if pos('+',Klammern)>0 then
    begin
      Klammernergebnis:=IntToStr(StrToInt(Klammern[pos('+',Klammern)-1])+StrToInt(Klammern[pos('+',Klammern)+1]));
    end;

    Ausgabe:=StringRePlace(Eingabe,Klammern,Klammernergebnis);
  end
  until
  pos('(',Eingabe) = 0;
  Memo1.Text:=Ausgabe;

So müsste es ja klappen, wenn man nur + in der Klammer rechnen würde und als Ergebnis würde im Memo dann der String mit ausgerechneten Klammern da stehen, nur das Problem ist, dass mir der Fehler nich genügend wirkliche Parameter bei StringRePlace angezeigt wird. Wisst ihr wo der Fehler liegt?


Andreas L. - So 16.10.11 13:29

Es fehlt noch der letzte Parameter bei StringReplace:


Delphi-Quelltext
1:
StringReplace('Irgendein Text''SuchString''ErsetzString', [rfReplaceAll]);                    


siehe Delphi-Hilfe


wayne123 - So 16.10.11 13:37

Die Delphi-Hilfe funktioniert nicht bei mir, hab eine ältere Version von Delphi. Wofür steht denn der letzte Parameter?


Andreas L. - So 16.10.11 13:42

user profile iconwayne123 hat folgendes geschrieben Zum zitierten Posting springen:
Die Delphi-Hilfe funktioniert nicht bei mir, hab eine ältere Version von Delphi.

http://www.delphi-library.de/viewtopic.php?t=89408&start=0
siehe Punkt 1

user profile iconwayne123 hat folgendes geschrieben Zum zitierten Posting springen:
Wofür steht denn der letzte Parameter?

http://docwiki.embarcadero.com/VCL/de/SysUtils.StringReplace


jaenicke - So 16.10.11 14:15

user profile iconAndreas L. hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconwayne123 hat folgendes geschrieben Zum zitierten Posting springen:
Die Delphi-Hilfe funktioniert nicht bei mir, hab eine ältere Version von Delphi.

http://www.delphi-library.de/viewtopic.php?t=89408&start=0
siehe Punkt 1
Hier noch der Link zur Hilfe für Windows 7, ich werde den Beitrag (vermutlich im Laufe des Tages) noch für Windows 7 überarbeiten:
http://www.microsoft.com/downloads/de-de/details.aspx?FamilyID=258aa5ec-e3d9-4228-8844-008e02b32a2c
// EDIT:
Fertig ;-)