So melde mich nu auch wieder
Bisher sieht mein sozusagen "Überprüfungscode" so aus:
Delphi-Quellcode:
procedure TLexer.CheckText;
var
i:Integer;
begin
i:=0;
while i <> length(m_Text)+1 do
begin
case m_Text[i] of
'A'..'Z','a'..'z':
begin
case m_Text[i-1] of
'A'..'Z','a'..'z':
begin
Insert('*',m_Text,i);
Insert('1',m_Text,i);
Insert('*',m_Text,i);
end;
'0'..'9':
begin
Insert('*',m_Text,i);
end;
'+','-','/':
begin
Insert('*',m_Text,i);
Insert('1',m_Text,i);
end;
#0:
begin
Insert('*',m_Text,i);
Insert('1',m_Text,i);
end;
end;
end;
end;
case m_Text[i] of
'(':
begin
case m_Text[i-1] of
'A'..'Z','a'..'z':
begin
Insert('*',m_Text,i);
end;
'0'..'9':
begin
Insert('*',m_Text,i);
end;
end;
end;
end;
case m_Text[i] of
'0'..'9':
begin
case m_Text[i-1] of
'A'..'Z','a'..'z':
begin
Insert('*',m_Text,i);
end;
end;
end;
end;
inc(i);
end;
end;
Bisher klappt es und er fügt die Zeichen immer ein:
z.b. 2x^2+3ab*5 = 2*x^2+2+3*a*1*b*5
weil mit so ner Struktur ist die Erkennung der Variablen leichter, eine Variable besteht immer aus:
Ziffer * Variable
unter Umständen dann noch
Ziffer * Variable ^ Ziffer
Zur Zeit bin ich am Zusammenfassen der Variablen, Addition und Subtraktion funktionieren schonmal soweit.
MfG Alaitoc