Hallo!
Ich habe ein Problem mit dieser procedure:
Delphi-Quellcode:
procedure SortTokensToUPN;
var tmp:array of string;
i:integer;
begin
// gleiche Länge wie Tokens:
SetLength(tmp,Length(Tokens));
// ersten beiden übernemen:
tmp[0]:=Tokens[0];
tmp[1]:=Tokens[1];
// rest durchgehen und Sortieren:
for i:=2 to High(Tokens) do
begin
// Steht i am Ende der Funktion?
if i<High(Tokens) then
// Ist es eine Zahl und steht links vom Operator?
if TryStrToInt(Tokens[i],hallo) and (not TryStrToInt(Tokens[i+1],hallo)) then
tmp[i]:=Tokens[i] else
// steht i am Anfang der Funktion?
if i>2 then
begin
if TryStrToInt(Tokens[i],hallo) and TryStrToInt(Tokens[i-1],hallo) then
tmp[i-1]:=Tokens[i];
end else
// Ist es ein Operrator?
if not TryStrToInt(Tokens[i],hallo) then
if i=High(Tokens) then
begin
// Ein Operrator ist am ende der Funktion => Syntax Error!
Writeln('Unerwarteter Opperator: "'+Tokens[i]+'" => Syntax Error!');
exit;
end else
tmp[i+1]:=Tokens[i];
end;
for i:=0 to High(Tokens) do
Tokens[i]:=tmp[i];
end;
Das Ziel dieser Procedure ist es das ein array in dem z.b. folgendes steht:
tst
=
1
+
2
( jede Zeile ein Eintrag)
Es in das hier umzuwandeln:
tst
=
1
2
+
Doch unerklärlicherweise steht in dem array danach anscheinend nur folgendes:
tst
=
1
Hat einer von euch eine ahnung warum das so ist???
gruß Teekeks