Function fejler, en gang i mellem?
HejsaJeg har lavet følgende kode, men jeg er løbet ind i et meget mærkeligt problem. Jeg har ikke ændret noget på koden, men plduselig godtager den ikke nogle strenge længere.
Den kunne modtage 0+((1+2)+3) 0+((5+5)+5) men nu fejler den.
Hvad der så er sjovt er at hvis jeg laver en showmessage på hver anden linie, så kører den lige igennem.
function opdel(Streng: string): double;
var
a,b,p,r: integer;
tegn: array of string;
posstart,posslut: array of integer;
begin
setlength(tegn,Length(Streng)+1);
setlength(posstart,1);
setlength(posslut,1);
p := 0;
r := 0;
for a:=1 to Length(Streng) do
begin
tegn[a] := RightStr(LeftStr(Streng,a),1);
if (tegn[a] = '(') then
begin
p := p + 1;
setlength(posstart,length(posstart) + 1);
posstart[p] := a;
end
else if (tegn[a] = ')') then
begin
setlength(posslut,length(posslut) + 1);
posslut[p - r] := a;
r := r + 1;
end;
end;
showmessage('BØF!');
end;
