Hi Leutz,
Im Zuge von Automaten, unendlichen wie endlichen, sollen wir einen Termüberprüfer basteln. Ich sitze grade an den Klammern, aber irgendwie hab' ich ein Problem mit dem folgenden Code:
Code:
procedure TFTerm.BPruefenClick(Sender: TObject);
var
i: integer;
n: integer;
begin
i := 1;
n := EEingabe.SelLength;
if n > 0 then
begin
while i<n do
begin
if EEingabe.Text[i] = '(' then K := K+1
else if ((EEingabe.Text[i] = ')') and (K>0)) then K := K-1
else if EEingabe.Text[i] = ')' then K := K+1;
Label1.Caption := inttostr(K);
inc(i);
end
end;
end;
Dazu ist zu sagen, dass EEingabe mein Eingabeeditfeld, K meine Klammervariable ist, ein Integer. Die ist quasi mein Keller, bzw. Stack. Geht das?
Vorher habe ich noch
Code:
procedure TFTerm.FormCreate(Sender: TObject);
begin
K := 0;
end;
gesetzt.
Wieso funktioniert die Überprüfung nicht? Wäre über Antwort erfreut! ^^